関数内に setinterval があります。最初のクリックではすべて問題ないように見えますが、その後のクリックごとにこのタイマーが加速します。理由がわかりません。
function startGame() {
var myVar=setInterval(function(){myTimer()},100);
}
関数内に setinterval があります。最初のクリックではすべて問題ないように見えますが、その後のクリックごとにこのタイマーが加速します。理由がわかりません。
function startGame() {
var myVar=setInterval(function(){myTimer()},100);
}
2 回目にクリックすると、最初の間隔も機能します。これは、このイベントが 100 ミリ秒で 2 回発生するためです。これを試して:
var myVar;
function startGame() {
if(myVar)
clearInterval(myVar);
myVar=setInterval(function(){myTimer()},100);
}
また:
var myVar;
function startGame() {
if(!myVar)
myVar=setInterval(function(){myTimer()},100);
}
Setinterval は、関数を X ミリ秒ごとに実行するように設定します。あなたの場合、1 回クリックすると 100 ミリ秒ごとに実行が開始され、もう一度クリックすると 100 ミリ秒ごとに 2 回目の実行が開始されると思います (したがって、今では、平均すると、50 ミリ秒ごとに 1 つ実行されます)。
setTimeout をお勧めしますが、それも必要だとは思いません。setinterval をゲーム ループとして使用しようとしていると思いますよね?その場合、一度だけ実行する方法が必要です。