AS3从角色位置中心射出子弹到光标

时间:2015-02-03 15:59:25

标签: actionscript-3 flash

我正在做一个自上而下的射击游戏。我的角色动人了。我接下来要做的就是从我的角色中心向我的光标方向射击子弹。我该怎么做呢? 我真的很难想到我需要使用的代码。

1 个答案:

答案 0 :(得分:1)

这将涉及简单的矢量数学。 There are tons of resources online about this.以下是基本要点:

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度(至少我这样)。 这意味着你的精灵未旋转的方向应该面向右边。