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游戏如何处理需要定期发生的事情,这些事情也存在于主游戏循环中?