我有一个预定的函数来检查身体之间的接触,每帧都被调用。
当我想检查某个CCSprite
和之间的触摸时b2body
,我首先检查它们是否存在于屏幕上,然后,我在相关种类的所有精灵上运行 for 循环。所以,如果我有 3 只狗要检查其接触情况,我必须在屏幕上的所有狗精灵上运行每一帧。问题是我可以看到它降低了我的 FPS 并使游戏有点模糊。(堆栈帧)
我怎样才能在许多精灵的接触期间运行而不掉下 FPS?
//in my contact check that relevant sprites are exist,than check contact
if([self getChildByTag:1] && [self getChildByTag:300])
{
// run on 10 sprites and check contact
for(int i=0;i<10;i++)
{
if( CGRectIntersectsRect ([[self getChildByTag:300+i] boundingBox], [sprite boundingBox]))
//do something
}
所以即使没有接触,只有我检查了这么多帧速率条件这一事实才会导致一些泄漏。