【发布时间】:2012-11-05 14:01:12
【问题描述】:
我正在为一个大学项目开发一个多弹模拟器,我想知道如何在 JavaScript 渲染到 HTML5 画布中最好地设置时间
我在物理上使用 Euler 积分器设置,准确性对于这个项目非常重要。渲染非常简单
我的问题是如何最好地设置这一切的时机。
现在我有:
- 在使用 setTimeout() 以固定时间步长循环的函数中运行的物理和其他逻辑
- 使用 requestAnimationFrame() 调用循环的另一个函数中的渲染(灵活的时间步长)
这两个循环同时运行(我知道 JavaScript 并不真正支持没有 Web Worker 的线程),但我不希望渲染(当前运行的 FPS 比需要的高得多)不必要地“窃取” CPU物理模拟中的循环,如果你明白我的意思的话。
鉴于物理精度在这里最重要,您建议如何设置计时系统? (也许在这里使用 Web Worker 会很有用,但我还没有看到它在其他引擎中使用过)
谢谢!
【问题讨论】:
标签: javascript canvas simulation game-physics timing