Actionscript 3中的最大值?

时间:2012-11-02 21:27:19

标签: actionscript-3

我想让一个敌人在AS3中跟随我的角色。

我到目前为止的代码是:

enemy1.x = (enemy1.x + (character.x - enemy1.x));
enemy1.y = (enemy1.y + (character.y - enemy1.y));

使用该代码,敌人每帧都会立即出现在我的角色之上。

但是,我不希望它是即时的。我希望敌人的运动具有最大值,例如每蜱2个。

我知道您可以为随机值设置最小值和最大值,但是对于类似的内容呢?

2 个答案:

答案 0 :(得分:1)

enemy1.x += getMovementValue(2, character.x - enemy1.x);
enemy1.y += getMovementValue(2, character.y - enemy1.y);

function getMovementValue(maxMovement:Number, d:Number):Number{
    if(d == 0) return 0;
    return (Math.min(2, Math.abs(d))) * (d / Math.abs(d));
}

您只需将最大允许距离与实际距离的绝对值之间的最小值乘以1或-1,具体取决于当前方向。

答案 1 :(得分:0)

如果计算的移动值太大,则需要限制它:

max_x = 2

x = (enemy1.x + (character.x - enemy1.x));
if abs(x) > max_x
    if x >0
        enemy.x = max_x
    else
        enemy.x = max_x * -1
else
    enemy.x = x

使其成为一个功能并重新使用y