Flash游戲制作:敵人窮追不舍(鼠標(biāo)感應(yīng))的追逐動(dòng)畫教程

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