首页 > 解决方案 > 如何在 PhaserJS 中添加补间以使对象远离停止的位置?

问题描述

需要的是运行对象并停止,现在进一步运行并停止等等,根据函数的number参数。如果我添加repeat补间,它会从原始起点开始重复。

我也尝试使用 for 循环添加带有补间的迭代器。但他们不会在停车时暂停。我添加delaycompleteDelay暂停但没有用。它只是直奔最终目的地。我什至尝试过 setTimeout 但没有帮助。

标签: javascriptecmascript-6phaser-frameworktween

解决方案


我使用一种方法来完成此操作,它不需要“重复”参数。您可以在函数中添加补间并添加调用此补间函数的 onComplete。例如:(使对象上升的补间)

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 条件,使其在达到特定值时停止,例如:

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 时,上面的内容将阻止补间重复。希望这会有所帮助!


推荐阅读