晚上好(在撰写本文时)
我在这个主题上所做的研究已经发现了许多富有成效的代码块,这些代码块与我的情况类似,但并不完全相同。如果存在我尚未发现的链接,我将不胜感激!
我有一些相关标准,都在2d平面上,这个问题与2d射弹路径有关:
1)对象A:位置轴,是
2)对象B:位置bx,由
3)对象P :(弹丸)原点位置bx,by
对象P以静态速度离开对象B的X / Y位置,朝着对象A的X / Y位置行进。
无论对象P的轨迹如何,对象A和B都会继续沿其路径移动。对象P不断地从ax,ay移到bx。我想我只需要角度和速度,就不需要继续跟踪角度和速度(只需相应地增加移动步骤,直到离台(放置物体的位置)为止)。
我正在使用ActionScript 3,将不胜感激。谢谢!
在大多数情况下,在二维xy平面中,以平面(在x轴和y轴上分开)的方式处理运动和动量通常比极性(角度+距离)方式更容易。我无法获得所需弹丸的确切行为,因此我假设您想要一个简单的,哑弹火箭式的弹丸(保持初始方向)。
:: 1.射弹发射(射弹的“发射”)
var duration:int //(duration of flight(until getting to (ax,ay) described in number of frames)
var spdX:Number //(x-axis part of speed, described in pixels per frame)
var spdY:Number //(y-axis part of speed, described in pixels per frame)
spdX=(bx-ax)/duration;
spdY=(by-ay)/duration;
:: 2.弹丸运动(侦听ENTER_FRAME事件,每帧执行一次)
projectile.x+=spdX;
projectile.y+=spdY;
::如果您想改变弹丸的速度,可以通过简单的乘法来处理。
public function adjustSpeed(ratio:Number):void
{
spdX*=ratio;
spdY*=ratio;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句