Phaser 3 перезапускает анимацию с обновленными начальными значениями - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть 4 многоразовых анимации, которые должны перемещать цель относительно ее текущей позиции.

Каждый из них в основном такой же, как в этом примере, но для каждого кардинального направления:

goLeft = this.tweens.add({
   targets: gamePieceSprite,
   x: {value: '-=64'},
   duration: 1000,
   paused: true
});

Поскольку я хочу иметь возможность использовать эти анимации несколько раз, я использую метод restart(), который позволяет воспроизводить анимацию движения с текущей позиции спрайта, но даже когда я меняю позицию спрайта, когда я вызовите функцию, чтобы перезапустить воспроизводимую анимацию, исходя из координат, в которых она была впервые воспроизведена, а не из текущего целевого спрайта.

var pathCounter = 0;

testPathText.on('pointerdown', function(){
    if (pathCounter % 2 == 0)
    {
      gamePieceSprite.setX(startTile.x);
      gamePieceSprite.setY(startTile.y);
    }
    else
    {
      if (levelStartRotation[level] == '1')
      {
        goLeft.restart();
      }
      else if (levelStartRotation[level] == '2')
      {
        goUp.restart();
      }
      else if (levelStartRotation[level] == '3')
      {
        goDown.restart();
      }
      else if (levelStartRotation[level] == '4')
      {
        goRight.restart();
      }
    }
    pathCounter++;
});

Можно ли как-нибудь обновить начальную точку анимации, чтобы перезапуск не начинался с того места, где он начинался раньше?

...