首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在impactjs中重置计时器

在impactjs中重置计时器
EN

Stack Overflow用户
提问于 2014-04-07 17:42:17
回答 1查看 117关注 0票数 0

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

代码语言:javascript
复制
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()之外的某个事件发生时从其他不同的函数中重置游戏计时器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-10 17:14:29

我不知道“将我的计时器重新设置为0"是什么意思,如果您只想让计时器重置,就不需要做任何事情,因为您已经设置了this.timer.set(4);,另一个选项是禁用它,为此您可以简单地将变量设置为null。

技巧:

1.您可以直接用目标创建定时器:

代码语言:javascript
复制
timer: new ig.Timer(4)

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

2.如果要禁用计时器变量,可以将其设置为null this.timer = null;,并检查是否在update函数中分配了该变量:

代码语言:javascript
复制
if (this.timer && this.timer.delta() >= 0) { ... }

PS:查看计时器上的影响文档这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22919434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档