box2d在单独的线程上

时间:2014-07-24 02:49:15

标签: android opengl-es box2d

我在android上创建了一个box2d游戏。

  • 当我将world.step()放置在与opengl渲染线程不同的线程中并让相机跟随一个体时,播放器会非常抖动。
  • 如果我在绘制命令之前将world.step放置在渲染线程上,即使使用相机跟随主体,它也会完美呈现。但我无法使用多线程的额外功能。

我猜这是线程之间的同步问题?任何提示或源代码示例?

1 个答案:

答案 0 :(得分:0)

如果要在单独的线程上运行物理引擎,则需要在渲染线程中保留所需状态的副本(例如位置,旋转),以便在物理更新实体时渲染一致的帧。完成物理步骤后,您同步两个线程以复制新位置/旋转。如果您的物理引擎以与渲染引擎不同的速率运行(120hz vs 60hz),您可能希望每两次物理复制渲染数据'帧。