如何做一个停止运动的条件

时间:2013-06-27 13:34:23

标签: actionscript-3

我使用正弦和余弦移动角色。

player.x += Math.cos(angle) * speed;
player.y += Math.sin(angle) * speed;

当前停止条件为distance < n。但如果速度太高,有时角色不会停下来并永远继续前进。什么是让它停在正确位置的最好方法?

PS:点击鼠标即可移动。我点击,播放器直接移动到点击的位置。

1 个答案:

答案 0 :(得分:0)

快速解决方法是检查当前distance是否比前一个(前一个动画帧中的那个)短。这意味着角色正在接近目标。如果它没有接近它(当前距离实际上高于前一个距离),则意味着它已经通过它,所以它必须停止。

在伪代码中:

if distance < n or lastDistance<distance then
    stop;
lastDistance = distance;

停止后,您应该将角色定位在目标位置(否则,它将在超调位置保持静止)。

编辑:如果你不介意角色在达到目标之前停止一点,你可以尝试使用取决于当前n的{​​{1}}值。这样,如果角色快速移动,它会在更大的区域内停止。