2016-11-07 16 views
0

私はplatformerゲームを作っています。プレイヤーがコインをすべて集めて次のレベルに行くと、レベルが0になったときにレベルを再起動するタイマーを画面に追加するにはどうしたらいいですか?これは私のコードのセクションで、もし彼らが溶岩に触れると、プレーヤーがレベルを再始動するかどうかを処理します。ゲームにタイマーを追加するにはどうすればよいですか?

Level.prototype.playerTouched = function(type, actor) { 
    if (type == "lava" && this.status == null) { 
    this.status = "lost"; 
    this.finishDelay = 1; 
    } else if (type == "coin") { 
    this.actors = this.actors.filter(function(other) { 
     return other != actor; 
    }); 
    if (!this.actors.some(function(actor) { 
      return actor.type == "coin"; 
     })) { 
     this.status = "won"; 
     this.finishDelay = 1; 
    } 
    } 
}; 

function runGame(plans, Display) { 
    function startLevel(n) { 
    runLevel(new Level(plans[n]), Display, function(status) { 
     if (status == "lost") 
     startLevel(n); 
     else if (n < plans.length - 1) 
     startLevel(n + 1); 
     else 
     console.log("You win!"); 
    }); 
    } 
    startLevel(0); 
} 
+1

[ 'setTimeout'](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout)のドキュメントをチェックしてください。おそらく 'startLevel()'の早い段階で呼びたいと思うでしょう。完了したら 'clearTimeout()'を忘れないでください。 – rphv

答えて

0

1つのオプションは、setIntervalを使用しています。

ここでは、左のお時間で変数を作成し、タイマーのすべての呼び出しを減らすことができ、サンプルとしてこれを使用してhttp://www.w3schools.com/js/js_timing.asp

<!DOCTYPE html> 
<html> 
<body> 

<p>A script on this page starts this clock:</p> 

<p id="demo"></p> 

<script> 
var myVar = setInterval(myTimer, 1000); 

function myTimer() { 
    var d = new Date(); 
    document.getElementById("demo").innerHTML = d.toLocaleTimeString(); 
} 
</script> 

</body> 
</html> 

からのサンプルコードを示します。このような

何か:

var myVar = setInterval(myTimer, 1000); 

var timeLeft = 10; 

function myTimer() { 

    if (timeLeft > 0){ 
     timeLeft = timeLeft - 1; 
     document.getElementById("demo").innerHTML = timeLeft;  
    }else{ 
     document.getElementById("demo").innerHTML = "Game over";  
    } 

} 
+0

私はこれを実装しようとしていますが、私はタイマがゲームの上にあり、カウントダウンする前に秒の実際の時間を表示するときに、それを働かせることはできませんまた、私はそれをリセットする方法を知らないレベルが0になるとレベルになります。 – Lopez78

関連する問題