Flash中簡單跟蹤彈的算法_Flash教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:Flash ActionScript制作超酷視覺效果動畫效果演示:具體代碼:onClipEvent(load){x=0//wherethedotisy=0//wherethedotisxmove=0//it'smovementymove=0//it'smovement}onClipEvent
我看到的一些作跟蹤彈的方法,都是要用向限的轉(zhuǎn)換,還要考慮子彈和飛機在某個方向保持平行時做一些調(diào)整,個人認為有些煩。而我這個用方向向量來計算跟蹤彈的方式,無論坐標系如何變,相關(guān)的計算只有一個,把速度在X,Y方向的“單位方向向量”計算出來,即可。 學(xué)過向量的朋友應(yīng)該都知道,單位方向向量(x,y),其中的X就是這個向量與X軸的夾角的余弦值,而Y就是正弦值,還等什么,馬上行動。 核心代碼如下:function Getdistance(mc1, mc2) {//計算了出二者———子彈與我機的距離
return Math.sqrt((mc1._x-mc2._x)*(mc1._x-mc2._x) (mc1._y-mc2._y)*(mc1._y-mc2._y));
}
function StardandlizeAngle(mc1, mc2) {//計算出子彈速度的方向向量。
var l = Getdistance(mc1, mc2);
mc1.VdirectionX=(mc2._x-mc1._x)/l;//單位方向向量中的X mc1.VdirectionY=(mc2._y-mc1._y)/l;//單位方向向量中的Y
}
function doMove(mc){//算出VX,VY,通過mc._x =mc.vx //及mc._y =mc.vy;實現(xiàn)動態(tài)效果
mc.vx=mc.v*mc.VdirectionX;
mc.vy=mc.v*mc.VdirectionY;
mc._x =mc.vx;
mc._y =mc.vy;
} _root.onEnterFrame=function(){
StardandlizeAngle(bullet,plane);
doMove(bullet);
}
PS:其中對象的屬性我是另個在一段AS腳本中用mc.prototype.屬性(方法)=function(){[ } 個人比較喜歡用這種方式,尤其是一些物理屬性頻煩使用時,這就好比是一個小的物理屬性庫了,非常的方便。
分享:解決Fla文件編譯SWF后體積過大經(jīng)�?吹桨婷嫔嫌腥藛栠@個問題。想起我第一次碰到別人給我的源文件有這種情況時,也是很頭疼,往往這些Fla文件中有著一大批動態(tài)文本框。整理了一下具體的解決
相關(guān)Flash教程:
- 相關(guān)鏈接:
- 教程說明:
Flash教程-Flash中簡單跟蹤彈的算法
。