2
我工作在JavaScript中的遊戲,我有遊戲循環設置:定時事件和requestAnimationFrame遊戲循環
loop: function() {
game.updateSomething();
if (game.running) {
game.tick++;
requestAnimationFrame(game.loop);
}
},
我的遊戲有一個工作循環,我能走動的物體,這是很好的,但是如果我想限制這個循環內的一個動作,例如每一秒,我該如何做到這一點?我是否需要注意與new Date()
每次打勾的時間,然後將其與前一代循環生成的計算時間進行比較,然後測試差異?就像這樣:
latest: null,
loop: function() {
var last = this.latest;
this.latest = new Date().getTime();
var every = 200;
if (Math.floor(last/every) != Math.floor(this.latest/every)) {
console.log('do something');
game.updateSomething();
};
if (game.running) {
game.tick++;
requestAnimationFrame(game.loop);
}
},
這似乎是非常的混亂,即使我在返回true時,地板的時間是上打勾不同的功能包裝這件事,它只是感覺不對......我試着用搜索引擎但我找不到具體解決這個問題的任何事情。
其他JavaScript遊戲如何處理需要定期發生的事情,這些事情也存在於主遊戲循環中?