花栗鼠表现问题(睡觉的身体不起作用?)

时间:2011-12-06 15:40:46

标签: performance cocos2d-iphone sleep chipmunk frame-rate

这是我在这里的第一篇文章(祝我好运)

我正在构建一个使用chipmunk物理引擎(v 5.3.4)的横向滚动iOS游戏(cocos2d)。 当我四处走动唤醒沉睡的动态身体时,游戏帧速率正在急剧下降。在不接触任何动态物体的情况下播放音量时,帧速率保持高且稳定。

最初我的帧速率为60.但是在我至少触摸一次关卡中的所有物体后,我的帧率降至19!

我将sleepTimeThreshold设置为0.4,并将idleSpeedThreshold设置为1,对于我创建的所有动态实体,我使用cpBodySleep(body)强制它们从模拟开始进入休眠状态。

有任何线索吗?

我有大约35个尸体在这个关卡周围散布(大约10 5个屏幕)。所有的身体都是简单的矩形和圆圈

我可以从调试中看出,机体重新进入睡眠状态,但是花栗鼠时间步(解算器/查询)最初占用了25%的运行时间,而根据仪器时间分析器播放了一个水平后占50%。

我在这里缺少什么?在花栗鼠身上睡觉的身体是否正常?或者我需要“手动”做一些事情吗?还有什么我需要做的才能重新获得我最初的高而稳定的帧速率吗?顺便说一下,我正在使用SpaceManager来使用花栗鼠。

1 个答案:

答案 0 :(得分:0)

所以身体不会再睡着了吗?他们第一次如何入睡,或者你是否处于睡眠状态?存储在cpBodies的“node”结构中的值是什么,它跟踪对象空闲的时间。

此外,您应该能够在屏幕上获得超过35个移动对象的批次,然后再遇到性能问题,即使没有睡眠也是如此。你是否用推荐的旗帜建造花栗鼠? -O3或-Os用于优化级别,-ffast-math用于禁用不必要的NaN检查,-DNDEBUG用于禁用断言。如果您缺少某些或所有这些,可能会在性能上产生巨大的差异。我建议使用Chipmunk附带的脚本来构建一个静态库。