0

我正在尝试在触发某个事件后重置我的计时器。目前我有我的游戏内计时器,它在我的更新中每 4 秒检查一次该事件,如下所示:

timer: new ig.Timer(),
update:function(){
           //console.log(this.timer.delta());
           if (this.timer.delta() >= 0) {
              this.performAchievementChecks();
              this.timer.set(4);
           }
 },

 performAchievementChecks:function(){
           if(tempArray.length >= 1 && this.Achievements[achID].status == this.storage.get(achKey)){
              this.performUpdate(achID);
           } 
 }

  performUpdate:function(achID){
           this.timer.set(0);
           this.updateAchievements(achID);
  }

所以我的函数performAchievementchecks()每 4 秒调用一次,如果它的 if 语句在这段时间内调用,true那么我想将我的计时器重置回 0,但它没有这样做。有人可以指出我做错了什么吗?如果是这样,我如何在发生特定事件时从其他不同功能重置我的游戏计时器update()

4

1 回答 1

0

我不确定“将我的计时器重置为 0”是什么意思,如果您只想重置计时器,则无需执行任何操作,因为您已经设置了它this.timer.set(4);,另一个选项是禁用它,为此您可以简单地将变量设置为空。

提示:

1.可以直接用target创建定时器:

timer: new ig.Timer(4)

然后使用this.timer.reset();重新启动计时器。

2.如果要禁用定时器变量,可以将其设置为null this.timer = null;,并检查变量是否在更新函数中赋值:

if (this.timer && this.timer.delta() >= 0) { ... }

PS:在此处查看有关计时器的影响文档

于 2014-04-10T17:14:29.123 回答