我如何在 PhaserJS 中添加一个补间动画以继续将对象从它停止的位置移动得更远?
How can I add a tween in PhaserJS to keep moving the object further from where it stopped?
需要运行对象停止,现在运行进一步停止等,根据函数的number参数。
如果我在补间中添加 repeat
,它会从原始起点开始重复。
我也尝试用带有 for 循环的补间添加迭代器。但他们不会在停靠点停顿。我添加了 delay
和 completeDelay
来获得暂停但没有用。它只是 运行 直接到达最终目的地。我什至试过 setTimeout 但没有帮助。
我使用一种方法来完成此操作,它不需要 "repeat" 参数。
您可以在函数中添加补间并添加调用此补间函数的 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 时,以上内容将阻止补间重复。
希望这对您有所帮助!
经过一段时间的搜索,我使用了 Phaser 库中的补间时间轴。它也可以与 for 循环完美配合。
@Adam Nijjar 的解决方案也有效:)
需要运行对象停止,现在运行进一步停止等,根据函数的number参数。
如果我在补间中添加 repeat
,它会从原始起点开始重复。
我也尝试用带有 for 循环的补间添加迭代器。但他们不会在停靠点停顿。我添加了 delay
和 completeDelay
来获得暂停但没有用。它只是 运行 直接到达最终目的地。我什至试过 setTimeout 但没有帮助。
我使用一种方法来完成此操作,它不需要 "repeat" 参数。 您可以在函数中添加补间并添加调用此补间函数的 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 时,以上内容将阻止补间重复。 希望这对您有所帮助!
经过一段时间的搜索,我使用了 Phaser 库中的补间时间轴。它也可以与 for 循环完美配合。 @Adam Nijjar 的解决方案也有效:)