在我的游戏中,我试图让变量逐渐上升,因此我需要能够在再次增加变量之前休眠一定的时间。
最佳答案
1) 使用计时器。这将允许您执行一次性延迟事件,或重复执行该函数调用。
举个例子,如果您搜索的话,phaser 网站基本上会为您提供所有内容的示例, http://phaser.io/examples/v2/time/basic-timed-event
另外,从文档中 http://phaser.io/docs/2.4.8/Phaser.Timer.html
如果您需要重复,请记下“循环”功能(我会发布链接,但我还没有足够的声誉)。
2) 另一种选择是简单地与 Phaser 的游戏刻度相结合。在您的状态内(如果这是您执行变量增量的位置),创建一个更新函数(这将在每次游戏更新时调用)。您可以访问自上次更新以来的时间。
查找类 Phaser.Timer (同样,我无法发布链接)。 查看属性 elapsed 和 elapsedMS。您可以使用它来手动跟踪自上次增量事件以来耗时(在幕后,这基本上是移相器补间或定时事件正在做的事情)。
例如:
var timeSinceLastIncrement = 0;
function update()
{
// Update the variable that tracks total time elapsed
timeSinceLastIncrement += game.time.elapsed;
if (timeSinceLastIncrement >= 10) // eg, update every 10 seconds
{
timeSinceLastIncreemnt = 0;
// Do your timed code here.
}
}
请注意,选项 1 更简洁,并且可能是首选解决方案。我提出选项 2 只是为了建议如何手动完成此操作(事实上,通常如何在后台类似 Phaser 的框架中完成此操作)。
关于javascript - 如何在 Phaser-Framework 中休眠一定秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38240398/