この声明はなぜ機能しますか?私は毎秒20-25フレームで画面を更新しようとしています。なぜ私はこれが動作するのか理解しています。新しいDate()。getTime() - lastLoopRunを使用すると、lastLoopRunがnew Date()。getTime()と等しいため、結果が毎回ゼロでないのはなぜですか?私は変数が0から始まるという事実と関係があると知っていますが、それは私にはあまり意味がありません。.getTime()はどのように機能しますか?
var lastLoopRun = 0;
function loop() {
if (new Date().getTime() - lastLoopRun > 40) {
handleControls();
showSPrites();
lastLoopRun = new Date().getTime();
}
setTimeout('loop();', 2);
}
時間が変化し、ifに入ると更新されるだけであるためです。 – epascarello