私は今、簡単なゲームに取り組んでいます。タイマーに不具合があり、何をしているのかわからないことを除けば、ほぼ完了しています。ボタンを押すと、キャンバス上の HTML5 テキストが 35 から 0 までカウントダウンを開始します。最初の実行では問題ありません。ただし、更新せずにもう一度プレイすることを選択すると、タイマーのカウントダウンが速くなります。これがコードです。
var timer = 35;
ctx.fillText("Countdown: " + timer, 320, 32);
function resetReggie(){
reggie.x = canvasWidth / 2;
reggie.y = canvasHeight / 2;
}
//Starts Timer for Timed Game
function timedMsg()
{
resetReggie();
ballsCaught = 0;
timer = 35;
alert('Pick up as many as you can in ' + timer + ' seconds');
countDown();
var t=setTimeout(function() {
var again = confirm("TIMES UP! You Gathered " + ballsCaught + " Balls! Play Again?");
if (again === true){
timedMsg();
resetReggie();
}
if (again === false){
resetReggie();
ballsCaught = 0;
timer = 35;
}
}, timer * 1000);
}
function countDown() {
if (timer != 0){
timer-=1;
setTimeout('countDown()', 1000);
}
}