javascript - 如何在 PhaserJS 中添加补间以使对象远离停止的位置?
问题描述
需要的是运行对象并停止,现在进一步运行并停止等等,根据函数的number参数。如果我添加repeat
补间,它会从原始起点开始重复。
我也尝试使用 for 循环添加带有补间的迭代器。但他们不会在停车时暂停。我添加delay
并completeDelay
暂停但没有用。它只是直奔最终目的地。我什至尝试过 setTimeout 但没有帮助。
解决方案
我使用一种方法来完成此操作,它不需要“重复”参数。您可以在函数中添加补间并添加调用此补间函数的 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 时,上面的内容将阻止补间重复。希望这会有所帮助!
推荐阅读
- python - 脏属性会影响 session.query
- r - kmeans() 的结果不会因运行而异
- javascript - angular5中聊天应用程序中的时间显示错误
- json - JSON字符串数组到实体框架
- facebook - Aws Cognito - Facebook 注册,需要用户名属性映射
- php - Codeigniter - mPDF 导出空白页
- axapta - X++ 如何为 D365 Form 运行
- python - Python PIL 将最后一张图片保存在内存中
- sql - 数据库 - 在复合键值上创建序列
- optimization - JIT 编译器能做什么而 AOT 编译器不能?