Как я могу добавить анимацию движения в Phaser JS, чтобы продолжать перемещать объект дальше от того места, где он остановился? - PullRequest
0 голосов
/ 05 мая 2020

Необходимо запустить объект и остановиться, теперь запустить дальше и остановиться и так далее, в соответствии с числовым параметром функции. Если я добавлю repeat в анимацию движения, она начнется с исходной начальной точки при повторении.

Я попытался добавить итераторы с анимацией с помощью for l oop. Но они не делают пауз на остановках. Я добавил delay и completeDelay, чтобы получить паузу, но без толку. Он просто идет прямо к конечному пункту назначения. Я даже пробовал setTimeout, но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

После некоторого поиска я использовал временную шкалу анимации в библиотеке Phaser. Он также отлично работал с a для l oop. Решение @Adam Nijjar также работает :)

0 голосов
/ 07 мая 2020

Есть метод, который я использую для достижения sh этого, и он не требует использования параметра "повторение". вы можете добавить свою анимацию движения в функцию и добавить onComplete, который вызывает эту функцию анимации движения. Например: (анимация движения, которая заставляет объект go подняться)

function goAbove(yourTarget){
 this.tweens.add({
    targets: yourTarget,
    y: youTarget.y + newY,
    ease: "Linear",
    duration: duration,
    yoyo: false,
    onComplete: goAbove.bind(this, yourTarget),
  });
} 

yourTarget будет продолжать расти бесконечно, если вы не добавите условие if внутри функции анимации движения, которое останавливает ее, когда указано значение c. достигнуто, например:

if ( yourTarget.y < 300 ){
  this.tweens.add({
    targets: yourTarget,
    y: youTarget.y + newY,
    ease: "Linear",
    duration: duration,
    yoyo: false,
    onComplete: goAbove.bind(this, yourTarget),
  });
}

Это выше остановит повторение анимации движения, когда yourTarget.y станет больше 300. Надеюсь, это поможет!

...