1
我试图在node.js和现代web浏览器上每隔10ms运行一次游戏循环。这个版本的Chrome运行正常(1ms的精度内住宿):如何在JavaScript中实现精确的跨平台游戏循环?
var nextUpdate = Date.now();
function loop() {
console.log(Date.now());
// update() here
nextUpdate += 10; // ms
setTimeout(loop, Math.max(0, nextUpdate - Date.now()));
}
loop();
然而,setTimeout的是准确的要少得多Firefox和node.js中即使0ms超时也需要比平均10ms更长的时间执行,这会导致循环完全不同步。
什么是更好的方式来实现一个精确的,跨平台的JavaScript游戏循环?
这是非常有用的,但我没有看到的setTimeout的替代方案,可以为10ms下火了,忙等待是不是一种选择。 – doeke 2014-09-21 13:53:57