0

在我的 cocos2d-iphone 项目中,我使用 Chipmunk 来提供物理模型。此外,我正在为 Chipmunk 使用 SpaceManager obj-c 包装器。

我给 Chipmunk 一个 constantDt 时间步长。

现在,我遇到的问题是物理模拟与游戏循环不同步。这意味着游戏的时间取决于 FPS(更具体地说,它们取决于我是在模拟器、设备还是更新的设备中运行它)。

这对游戏玩法造成了灾难性的影响。例如,如果 FPS 由于某种原因变慢,物理模拟会爬行并且对象移动得更慢。这使得关卡设计几乎不可能!

请帮忙!

4

2 回答 2

0

您可以尝试在游戏中使用两个循环。使用NSTimer刺激 Chipmunk 和CADisplayLink仅用于绘图。在每次重绘时,向您的物理模型询问对象的当前位置。

于 2011-03-27T20:54:12.500 回答
0

因此,我通过使用 Spacemanager 的前沿版本(来自源代码)解决了这个问题。它有一个改进的阶跃函数(只要你使用一个 constantDt),它可以“加起来”自上次重新计算以来可能累积的任何额外时间,并加以说明。

感谢移动兄弟!

于 2011-03-27T23:26:12.460 回答