发新话题
打印

【转载】Flash中简单跟踪弹的一种计算方法

【转载】Flash中简单跟踪弹的一种计算方法

我看到的一些作跟踪弹的方法,都是要用向限的转换,还要考虑子弹和飞机在某个方向保持平行时做一些调整,个人认为有些烦。而我这个用方向向量来计算跟踪弹的方式,无论坐标系如何变,相关的计算只有一个,把速度在X,Y方向的“单位方向向量”计算出来,即可。 学过向量的朋友应该都知道,单位方向向量(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;实现动态效果




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(){[ } 个人比较喜欢用这种方式,尤其是一些物理属性频烦使用时,这就好比是一个小的物理属性库了,非常的方便。
妖城欢迎您!

TOP

暂时看了头晕。。。。。。等到了一定境界再看。。。。。
我的生命一秒一秒在流逝

TOP

看这些代码到没有什么,只要是一到作图就晕死,怎么做都是难看
男人分4种,1种聪明,1种英俊,1种不聪明也不英俊,我是第4种
帅有个屁用!到头来还不是被卒吃掉

TOP

感觉现在做FLASH像是在编成...
友情连接:第七大陆

●服务器架设 ●注册系统[完整]
●资料片制作 ●脚本制作

QQ:297129594

TOP

....妖哥 真是全才 那里都能看到您的身影 东西拿走了 回去研究研究

TOP

发新话题