HTML と Javascript の単純なプロジェクトに取り組んでいます。タイマーに問題があります。
Date()
2 つのオブジェクト間の秒数を計算しています。2秒ごとに、新しい乱数を取得したいと考えています。100 ミリ秒ごとに実行する があり、2 秒のマークを過ぎると、ステートメントsetInterval
内のコードが実行されます。if
だから私の質問は: 100 ミリ秒ごとに実行されるa 内にあるステートメントで
、コードが 2 秒に 1 回だけ実行されるようにするにはどうすればよいですか?if
setInterval()
コードは次のとおりです。
var startTime = new Date();
var endTime = new Date();
var randomNumber = 0;
var gameTimer = setInterval(function(){
//calculate seconds;
var secondsPassed = Math.round( (endTime - startTime) / 1000 );
if(modulo(secondsPassed,2) == 0){
//when the "gate" is open this keep executing every 100 mili seconds.
//but i want it to execute only once every 2 seconds.
randomNumber = Math.floor(Math.random()*lanes.length);
$(lanes[randomNumber]).append(box);
}
endTime = new Date();
}, 100);
var modulo = function (n, m) {
var remain = n % m;
return Math.floor(remain >= 0 ? remain : remain + m);
};