2013-02-06 33 views
1

嗨。如何运行CANVASENGINE服务器和物理世界

我正在使用框架canvasenginenode.js。我也使用box2d框架(物理引擎)。

问题是我的canvasengine框架正在运行(所以它正在等待连接)。我想要运行一个无限循环来加速物理世界(world.step(fps,iterations)),但似乎线程在node.js中不存在。那么,我该如何做到这一点?

感谢您的帮助!

回答

0
setInterval(function(){world.step()},1000/60) 

应在60 fps的步骤你的世界

+0

是的!有用!谢谢! – Simrugh

1

更多最新的浏览器有一个名为window.requestAnimationFrame功能。 此功能用于在浏览器内部制作流畅的动画。 对于安全实现的功能(你可以随处运行它),看看这段代码:

window.requestAnimationFrame = function() { 
    return window.requestAnimationFrame || 
     window.webkitRequestAnimationFrame || 
     window.mozRequestAnimationFrame || 
     window.oRequestAnimationFrame  || 
     window.msRequestAnimationFrame  || 
     function(callback) { 
      window.setTimeout(callback, 1000/60); 
     }; 
}; 
+0

requestAnimationFrame是一件好事,它绝对应该使用,但最好是如果你确切地知道为什么以及何时使用它。从渲染循环来看,它是完美的,但是在逐步进行物理仿真时,可能会发现最好使用setInterval。将仿真与渲染分离可让您调整仿真速率,让您选择减慢或加速游戏而不影响渲染速率。当然,不同的计划会有不同的需求。 –

相关问题