ActionScript 3简单射弹路径

阿尔科斯

晚上好(在撰写本文时)

我在这个主题上所做的研究已经发现了许多富有成效的代码块,这些代码块与我的情况类似,但并不完全相同。如果存在我尚未发现的链接,我将不胜感激!

我有一些相关标准,都在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章