我试图制作一个视频游戏引擎,它必须运行render
函数作为循环。当此功能完成后,我想再次运行它,又一次,又一次......但是当我尝试这样的:无限次运行函数
function render() {
// some code here which takes ~ 0.00015 second to run
}
while(1) { render(); }
在几秒钟的浏览器冻结。所以,我已经试过另一种方式:
function render() {
// some code here which takes ~ 0.00015 second to run
}
setTimeout(render);
// I've tried also
setTimeout(render, 1);
另外:
function render() {
// some code here which takes ~ 0.00015 second to run
setTimeout(render);
// OR
setTimeout(render, 1);
}
但是执行功能的第二只〜500倍,我要运行它〜5000倍。如果我查看运行时间(0.00015秒),这是可能的,但我找不到一种方法来实现这一点。
有没有人有想法?
尝试使用['requestAnimationFrame'](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame),但是如果你已*获得500 fps,为什么需要更多? –
@Lucas Trzesniewski:你应该重新发布这个答案。 – doctorless
@drheart某人已经FGITWed那一个,但说实话,我很怀疑OP的500 fps数字;) –