您当前的位置:JZ5U绿色下载站文章中心设计学院Photoshop → 文章内容
  • Flash中简单跟踪弹的算法

我看到的一些作跟踪弹的方法,都是要用向限的转换,还要考虑子弹和飞机在某个方向保持平行时做一些调整,个人认为有些烦。而我这个用方向向量来计算跟踪弹的方式,无论坐标系如何变,相关的计算只有一个,把速度在X,Y方向的“单位方向向量”计算出来,即可。学过向量的朋友应该都知道,单位方向向量(x,y),其中的X就是这个向量与X轴的夹角的余弦值,而Y就是正弦值,还等什么,马上行动。核心代码如下:
functionGetdistance(mc1,mc2){//计算了出二者———子弹与我机的距离

returnMath.sqrt((mc1._x-mc2._x)*(mc1._x-mc2._x)+(mc1._y-mc2._y)*(mc1._y-mc2._y));

}

functionStardandlizeAngle(mc1,mc2){//计算出子弹速度的方向向量。

varl=Getdistance(mc1,mc2);

mc1.VdirectionX=(mc2._x-mc1._x)/l;//单位方向向量中的Xmc1.VdirectionY=(mc2._y-mc1._y)/l;//单位方向向量中的Y

}

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


  • 作者:互联网  来源:本站整理  发布时间:2006-07-02 15:58:58


------------------------------- · 相关文档浏览 · --------------------------------------------------------------------- · 热门文档浏览 · -------------------------------------