AS3 перемещается в направлении мыши

-6

В игре типа скроллинга я хочу, чтобы объект перемещался, куда бы я ни нажимал мышью, а затем останавливался в этом месте. Каков наилучший способ сделать это? Объект может двигаться только по оси X, поэтому мне не нужно беспокоиться о перемещении по оси y.

спросил(а) 2016-02-03T12:27:00+03:00 4 года, 10 месяцев назад
0
58

То, что я сделал бы, это установить координату 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;
}
}

ответил(а) 2016-02-04T01:59:00+03:00 4 года, 10 месяцев назад
42

Использовать 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

ответил(а) 2016-02-03T12:37:00+03:00 4 года, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема