我正在使用框架canvasengine与node.js。我也使用box2d框架(物理引擎)。
问题是我的canvasengine框架正在运行(所以它正在等待连接)。我想要运行一个无限循环来加速物理世界(world.step(fps,iterations)),但似乎线程在node.js中不存在。那么,我该如何做到这一点?
感谢您的帮助!
我正在使用框架canvasengine与node.js。我也使用box2d框架(物理引擎)。
问题是我的canvasengine框架正在运行(所以它正在等待连接)。我想要运行一个无限循环来加速物理世界(world.step(fps,iterations)),但似乎线程在node.js中不存在。那么,我该如何做到这一点?
感谢您的帮助!
setInterval(function(){world.step()},1000/60)
应在60 fps的步骤你的世界
更多最新的浏览器有一个名为window.requestAnimationFrame功能。 此功能用于在浏览器内部制作流畅的动画。 对于安全实现的功能(你可以随处运行它),看看这段代码:
window.requestAnimationFrame = function() {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback) {
window.setTimeout(callback, 1000/60);
};
};
requestAnimationFrame是一件好事,它绝对应该使用,但最好是如果你确切地知道为什么以及何时使用它。从渲染循环来看,它是完美的,但是在逐步进行物理仿真时,可能会发现最好使用setInterval。将仿真与渲染分离可让您调整仿真速率,让您选择减慢或加速游戏而不影响渲染速率。当然,不同的计划会有不同的需求。 –
是的!有用!谢谢! – Simrugh