AS3 向鼠标点击方向移动

AS3 move towards mouse click

在横向卷轴类型的游戏中,我希望对象移动到我单击鼠标的任何位置,然后停在该位置。完成此任务的最佳方法是什么?该对象只能在 x 轴上移动,所以我不必担心在 y 轴上移动。

使用补间: http://hosted.zeh.com.br/tweener/docs/en-us/

并像这样应用补间:

Tweener.addTween(myObject, {_x:myObject.parent.mouseX, time:1, transition:"linear"});

您还可以玩转时间和过渡类型。可以在此处找到过渡类型的良好概述: http://hosted.zeh.com.br/tweener/docs/en-us/misc/transitions.html

我会做的是设置一个目标 x 坐标,然后根据恒定的移动速度在每一帧(或计时器滴答)向它移动。

const moveSpeed:Number = 5;
var targetX:Number = 0;

stage.addEventListener(MouseEvent.CLICK, click);

function click(e:MouseEvent):void {
    targetX = mouseX;
    addEventListener(Event.ENTER_FRAME, update);
}

function update(e:Event):void {
    if (Math.abs(targetX - player.x) < moveSpeed) {
        // reached target
        player.x = targetX;
    } else if (targetX > player.x) {
        // move right
        player.x += moveSpeed;
    } else {
        // move left
        player.x -= moveSpeed;
    }
}