如何在Phaser-Framework

时间:2016-07-07 08:03:28

标签: javascript phaser-framework

在我的游戏中,我试图让变量逐渐上升,所以我需要能够在我再次增加变量之前睡一段时间。

1 个答案:

答案 0 :(得分:1)

1)使用计时器。这将允许您执行一次关闭延迟事件,或重复执行该函数调用。

一个例子,因为移相器网站基本上为您提供所有的示例,如果您搜索它, http://phaser.io/examples/v2/time/basic-timed-event

另外,来自文档 http://phaser.io/docs/2.4.8/Phaser.Timer.html

如果您需要重复,请注意功能“循环”(我会发布链接,但我还没有足够的声誉)。

2)另一种选择就是与Phaser的游戏勾号联系起来。在你的状态中(如果这是你执行变量递增的地方),创建一个更新函数(这将在每次游戏更新时调用)。您可以访问自上次更新以来的时间。

查找Phaser.Timer类(再次,我无法发布链接)。 查看已过去的属性和已过去的MS。您可以使用它来手动跟踪自上次增量事件以来经过的时间(在幕后,这基本上是移相器或定时事件正在执行的操作)。

例如:

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只是建议如何手动完成(事实上,它通常是在幕后的移植器等框架中完成的。)