Phaser 3 - Как остановить gameObject после перемещения с accelerateTo - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь создать анимацию для колоды, раздающей карты с помощью метода accelerateTo.Документы Phaser гласят, что игровой объект не прекращает двигаться, как только достигает координат назначения.Нет никакого объяснения о том, как на самом деле остановить объект, как только он достигнет пункта назначения.

function preload () {
    this.load.image('back', '../static/deck/flipo.png')
};

function create () {
  card = this.physics.add.image(500,500, 'back')
  this.physics.accelerateTo(card, 126, 160, 60, 1)
};

Это работает, чтобы заставить карту двигаться по пути, но как я могу заставить ее остановиться?Я предполагаю, что мог бы использовать невидимый объект коллайдера, но я предпочитаю использовать более чистое решение.

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете проверить его положение в функции update и достигнет ли оно желаемой позиции x, y.Вы можете сделать setVelocity(0), чтобы остановить это.

Но, если честно, поскольку вы просто хотите перемещать карты из одного места в другое , я думаю, что использование tween является лучшим и простымвариант.Вы также можете установить onCompleteCallback на анимацию движения.

var tween = this.tweens.add({
    targets: card,
    x: 120,
    y: 160,
    ease: 'Power1',
    duration: 3000
});

Вот пример простой анимации .

...