如何在 Phaser-Framework 中睡眠一定的秒数
How to sleep a certain amount of seconds in the Phaser-Framework
在我的游戏中,我试图让一个变量逐渐增加,所以我需要能够在再次增加变量之前睡一段时间。
1) 使用计时器。这将允许您执行一次延迟事件,或重复执行该函数调用。
举个例子,如果你搜索的话,phaser 网站基本上会给你一切的例子,
http://phaser.io/examples/v2/time/basic-timed-event
此外,来自文档
http://phaser.io/docs/2.4.8/Phaser.Timer.html
如果您需要重复,请注意函数 "loop"(我会 post link,但我还没有足够的声誉)。
2) 另一种方法是简单地配合 Phaser 的游戏刻度。在您的状态中(如果这是您执行变量递增的地方),创建一个更新函数(这将在每次游戏更新时调用)。您可以访问自上次更新以来的时间。
查找 class Phaser.Timer(同样,我不能 post link)。
查看属性 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 只是为了建议如何手动完成此操作(事实上,它通常是如何在幕后的移相器等框架中完成的)。
在我的游戏中,我试图让一个变量逐渐增加,所以我需要能够在再次增加变量之前睡一段时间。
1) 使用计时器。这将允许您执行一次延迟事件,或重复执行该函数调用。
举个例子,如果你搜索的话,phaser 网站基本上会给你一切的例子, http://phaser.io/examples/v2/time/basic-timed-event
此外,来自文档 http://phaser.io/docs/2.4.8/Phaser.Timer.html
如果您需要重复,请注意函数 "loop"(我会 post link,但我还没有足够的声誉)。
2) 另一种方法是简单地配合 Phaser 的游戏刻度。在您的状态中(如果这是您执行变量递增的地方),创建一个更新函数(这将在每次游戏更新时调用)。您可以访问自上次更新以来的时间。
查找 class Phaser.Timer(同样,我不能 post link)。 查看属性 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 只是为了建议如何手动完成此操作(事实上,它通常是如何在幕后的移相器等框架中完成的)。