AS3 перемещается в направлении мыши
В игре типа скроллинга я хочу, чтобы объект перемещался, куда бы я ни нажимал мышью, а затем останавливался в этом месте. Каков наилучший способ сделать это? Объект может двигаться только по оси X, поэтому мне не нужно беспокоиться о перемещении по оси y.
То, что я сделал бы, это установить координату 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;
}
}
Использовать tweener: 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
Еще в рубрике
- Вопросы
- Actionscript-3
- AS3 перемещается в направлении мыши