Flash中简单跟踪弹的算法
2008-04-02 10:46:17来源:互联网 阅读 ()
我看到的一些作跟踪弹的方法,都是要用向限的转换,还要考虑子弹和飞机在某个方向保持平行时做一些调整,个人认为有些烦。而我这个用方向向量来计算跟踪弹的方式,无论坐标系如何变,相关的计算只有一个,把速度在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(){[ } 个人比较喜欢用这种方式,尤其是一些物理属性频烦使用时,这就好比是个小的物理属性库了,很的方便。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: Flash实用编程五---下雨动画的制作
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash