AS3 从角色位置中心向光标发射子弹



我正在制作一款自上而下的射击游戏。我让我的角色动起来了。接下来我要做的就是从角色的中心向光标所在的方向发射子弹。我将如何做到这一点?我真的很难想到完成这项工作所需的代码。

这将涉及简单的向量数学。网上有大量关于此的资源。以下是基本要点:

1)首先,计算角色和目标(在本例中为鼠标位置)之间的角度(以弧度为单位)。您可以使用Math.atan2()来执行此计算。

var angle:Number = Math.atan2(mouseY - playerY, mouseX - playerX);

2)接下来,使用该角度创建一个矢量(x,y delta),该矢量表示子弹的行进方向。您可以使用 Math.cos()Math.sin() 来计算xy值:

var speed:Number = 5;
var vector:Point = new Point(Math.cos(angle) * speed, Math.sin(angle) * speed);

3)现在,您可以按该向量更新项目符号位置每帧:

bullet.x += vector.x;
bullet.y += vector.y;

4)如果你想让你的子弹精灵指向行进方向,将该角度转换为度数并设置子弹精灵的rotation

var degrees:Number = angle * (180 / Math.PI);
bullet.rotation = degrees;

请注意,出于此处的数学目的,0 度被认为是沿 x 轴的朝右,而不是像您自然认为的 0 度那样朝上(至少我是这样)。这意味着您的精灵未旋转的方向应该朝右。

最新更新