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);とはどういう意味ですか?そのためには、変数を null に設定するだけです。

チップ:

1.ターゲットを使用してタイマーを直接作成できます。

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 に答える