Flash游戲制作:敵人窮追不舍(鼠標感應)的追逐動畫教程

這篇教程主要是向腳本之家的朋友介紹利用Flash制作敵人窮追不舍的追逐動畫游戲方法,教程不是很難,只是將sin,cos函數(shù)的應用罷了。。。。會應用的話。。。會發(fā)現(xiàn)很都游戲的制作都離不開三角函數(shù)。。。。如果實在不知道三角函數(shù)是什么。。。。自己上網(wǎng)查去。。。
下面我們先來看看效果圖吧:
還有的就是在一定的范圍內(nèi)追逐目標。。。。
其實是計算出兩點距離d后加一點判斷。。。然后再執(zhí)行移動。。。詳細參考源文件。。。
效果:
。。。講玩。。。。打機去^_^
圖1
Rt△ABC,∠C=90度。。。∠A所對的邊叫a..∠B的對邊叫b...這不用再由初中知識說起吧- -~
sin∠1=a:c=a/c(對邊比斜邊)
cos∠1=b:c=b/c(鄰邊比斜邊)
至于asin就是求sin的反值。。。sin是求邊的比。。。那么asin就是用比來反求角的值
即asin(a:c)=∠1..
acos就是反求cos的值。。。詳細不想說。。。
還有要用到的是鉤股定理。。。
既a*a+b*b=c*c
如下圖:
圖2
d就可以通過(m.x-m.y)的平方加上(m.y-s.y)的平方的和再開方來求出
然后用asin(abs(m.y-s.y):d)求出∠1...既s1的值...
繼續(xù)往下看:
圖3
s1已知....(感覺在做數(shù)學題- -~)
i就是在1單位時間內(nèi)移動的距離。。。。因為sin∠1=a:c
假設ss=sin(s1)
所以sin(s1)=a:c=a:i=ss,a=ss*i。
假設cos(s1)=b:c=b:1=cc,c=cc*i。
還有要注意的一個問題。。。。就是要計算出移動后的點的坐標。。。。
。。參照圖2
(s.x,s.y)
要去追(m.x,m.y)那個紅點。。。再參照圖3,當紅點在藍點的右上方時————即(m.x>=s.x && m.y>=s.y)
藍點移動到的點的坐標就是。。。。(s.x+cc*i,s.y+ss*i)
在右下方(m.x>=s.x && m.y<=s.y)
移動后的點(s.x+cc*i,s.y-ss*i)
在左下方時(m.x<=s.x,m.y<=s.y)
移動后的點(s.x-cc*i,s.y-ss*i)
在左上方時(m.x<=s.x && m.y>=s.y)
移動后點坐標(s.x-cc*i,s.y+ss*i)
源程序:
var i:int=int(q.text);
var mou:Sprite=new Sprite();//用來得到鼠標的坐標
var s1:Number=0;//角
var d:Number=0;//兩點的距離
addChild(mou);
function moves(e:MouseEvent){
m.x=mou.mouseX;
m.y=mou.mouseY;
}
stage.addEventListener(Event.ENTER_FRAME,mm);
function mm(e:Event){
d=Math.sqrt(pf(abs(s.x-m.x))+pf(abs(s.y-m.y)));
s1=Math.asin(abs(s.y-m.y)/d);
if(d>=i){
if(m.x>=s.x && m.y>=s.y){
s.y+=Math.sin(s1)*i;
s.x+=Math.cos(s1)*i;
}else if(m.x<=s.x && m.y<=s.y){
s.y-=Math.sin(s1)*i;
s.x-=Math.cos(s1)*i;
}else if(m.x<=s.x && m.y>=s.y){
s.x-=Math.cos(s1)*i;
s.y+=Math.sin(s1)*i;
}else if(m.x>=s.x && m.y<=s.y){
s.x+=Math.cos(s1)*i;
s.y-=Math.sin(s1)*i;
}
}else{
s.x=m.x;
s.y=m.y;
}
}
function abs(n:Number){
return(Math.abs(n));
}//計算絕對值
function pf(n:Number){
return n*n;
}//計算平方
//以下是設定速度的按鈕
b1.addEventListener(MouseEvent.CLICK,se);
function se(e:Event){
i=int(q.text);
}
效果:
還有的就是在一定的范圍內(nèi)追逐目標。。。。
其實是計算出兩點距離d后加一點判斷。。。然后再執(zhí)行移動。。。詳細參考源文件。。。
效果:
教程結束,以上就是flash敵人窮追不舍(鼠標感應)的追逐動畫教程,希望能對大家有所幫助!
相關文章
flash如何做雨滴下落的動畫效果? Flash8做一個下雨效果的技巧
flash如何做雨滴下落的動畫效果?想要做一個逼真的雨滴落下的效果,該怎么做雨滴落下水花擴散的效果呢?下面我們就來看看Flash8做一個下雨效果的技巧2022-08-18flash理發(fā)店旋轉彩燈動畫效果怎么做? 理發(fā)店旋轉燈制作技巧
flash理發(fā)店旋轉彩燈動畫效果怎么做?經(jīng)常使用flash制作動畫效果,該怎么制作旋轉燈效果,下面我們就來看看理發(fā)店旋轉燈制作技巧,詳細請看下文介紹2022-07-23flash怎么把形狀變成文字? flash星星變文字動畫的實現(xiàn)方法
flash怎么把形狀變成文字?flash繪制的星星想要慢慢變成文字,該怎么將圖形變文字呢?下面我們就來看看flash星星變文字動畫的實現(xiàn)方法,詳細請看下文介紹2022-06-06flash怎么制作補間動畫? flash變形動畫的實現(xiàn)方法
flash怎么制作補間動畫?flash中想要制作形狀變化的動畫效果,該怎么制作補間動畫呢?下面我們就來就來看看flash變形動畫的實現(xiàn)方法2022-02-06FLASH怎么讓搖曳的荷花更逼著? flash制作風吹荷花動畫的技巧
FLASH怎么讓搖曳的荷花更逼?flash中想要制作風吹荷花的動畫熊愛國,該怎么制作這個效果呢?下面我們就來看看flash制作風吹荷花動畫的技巧2022-02-06flash怎么制作荷花在荷花池里搖擺的動畫? FLASH做擺動荷花的技巧
flash怎么制作荷花在荷花池里搖擺的動畫??flash中想要制作荷花搖擺的動畫,該怎么制作荷花搖曳的動畫呢?下面我們就來看看FLASH做擺動荷花的技巧2022-02-06flash怎么做徑向彩虹文字動畫? 文字添加彩虹動畫效果的技巧
flash怎么做徑向彩虹文字動畫?flash椎間盤買個輸入的文字,想要添加動畫效果,該怎么添加徑向彩虹文字效果呢?下面我們就來看看flash文字添加彩虹動畫效果的技巧,詳細請2021-11-09flash怎么做眨眼動畫效果? flash動漫人物眨眼動畫的做法
flash怎么做眨眼動畫效果?flash中想要制作一個動漫人物的眼睛眨眼動畫,該怎么制作呢?下面我們就來看看flash動漫人物眨眼動畫的做法2021-11-08flash怎么制作火焰文字效果? flash做火焰字體動畫的技巧
flash怎么制作火焰文字效果?flash中想要制作一個熊熊燃燒的活顏文字,該怎么制作這個文字效果呢?下面我們就來看看flash做火焰字體動畫的技巧2021-11-01flash怎么做文字動畫logo? 閃動的片頭動畫flash的實現(xiàn)方法
flash怎么做文字動畫logo?flash中想要制作一個文字logo的動畫,讓文字閃爍,該怎么制作這個效果呢?下面我們就來看看flash制作文字動畫的技巧2021-10-29