优化两个阵列之间的碰撞检测(cocos2d)

时间:2013-01-21 16:36:05

标签: arrays optimization cocos2d-iphone collision

有人可以建议一种优化我的碰撞检测的方法吗? 我有两个CCArrays

CCArray allyArray;
CCArray enemyArray;

我想检测两个数组中每个sprite之间的冲突,所以我在更新方法中做了一个嵌套数组

-(void)update:(ccTime)dt
{
    CCARRAY_FOREACH(allyArray, allyTeam)
    {
        CCARRAY_FOREACH(enemyArray, enemyTeam)
        {
            if (CGRectIntersectsRect(allyTeam.boundingbox, enemyTeam.boundingbox)
            {
                 [enemyTeam runAction: hurtAnimation]; 
                 enemyTeam.health -= allyTeam.attackStrength; 
                 if(EnemyTeam.health <= 0) 
                 [enemyTeam runAction: deathAnimation];
                 enemyTeam.position = enemyTeam.resetPosition; 
            }
        }
    }
}

我发现这种方法很快就收回了我的帧速率。如果我在每个阵列中有100个精灵,我的帧速率将下降到30 fps。

所以我的问题是如何更好地检测大量精灵之间的碰撞?如果你能为我提供一些可以帮助优化它的教程的链接,那真的很棒=)

感谢您在这里帮助新手=)))

0 个答案:

没有答案