快速业务通道

Flash中简单跟踪弹的算法

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10

我看到的一些作跟踪弹的方法,都是要用向限的转换,还要考虑子弹和飞机在某个方向保持平行时做一些调整,个人认为有些烦。而我这个用方向向量来计算跟踪弹的方式,无论坐标系如何变,相关的计算只有一个,把速度在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(){[ } 个人比较喜欢用这种方式,尤其是一些物理属性频烦使用时,这就好比是一个小的物理属性库了,非常的方便。 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号