这是我在这里的第一篇文章(祝我好运)
我正在构建一个使用花栗鼠物理引擎(5.3.4版)的侧滚iOS-game (cocos2d)。当我四处走动,唤醒睡眠中的动态身体时,游戏的帧率会急剧下降。当在不接触任何动态物体的情况下玩该关卡时,帧速率保持高且稳定。
最初我的帧率是60。但是在我移动到同一级别的所有身体后,至少有一次我的帧率降到了19!
我将sleepTimeThreshold设置为0.4,将idleSpeedThreshold设置为1,并且对于我创建的所有动力学实体,我使用cpBodySleep(body)强制它们从模拟开始时休眠。
有什么线索吗?
我有大约35个身体分布在关卡上(大约10个5乘5个屏幕)。所有的物体都是简单的矩形和圆形。
我可以从调试中看出,身体又回到了睡眠状态,但是花栗鼠的timestep (求解器/查询)最初占用了运行时间的25%,根据仪器时间剖析器,在玩完一个关卡后,占用了50%的时间。
这里我漏掉了什么?花栗鼠的身体睡眠正常吗?或者我需要“手动”做一些事情?我还需要做些什么才能恢复我最初的高稳定帧率?顺便说一句,我正在使用SpaceManager来处理花栗鼠。
发布于 2011-12-07 04:04:10
所以身体再也不会睡着了?他们是如何第一次入睡的,或者你是在睡眠状态下启动的?存储在cpBodies的“节点”结构中的值是什么,也就是跟踪对象空闲时间的位置。
此外,即使在没有睡眠的情况下,在遇到性能问题之前,您也应该能够在屏幕上看到超过35个移动对象。你正在使用推荐的标志构建花鼠吗?-O3或-Os用于优化级别,-ffast-math用于禁用不必要的NaN检查,-DNDEBUG用于禁用断言。如果您缺少其中的一些或全部,这可能会在性能上产生巨大的差异。我建议使用Chipmunk附带的脚本为自己构建一个静态库。
https://stackoverflow.com/questions/8402592
复制相似问题