2dx 3.x 有什么好的碰撞检测方法?

网上搜索资料找到貌似只有这个//碰撞检测,消除飞镖和敌人 觉得这个碰撞检测太傻瓜化 太弱智

for (int i = 0; i < aarayTarget->count(); i++) {
Sprite *target = (Sprite *)aarayTarget->objectAtIndex(i);
for (int j = 0; j < arrayProjectile->count(); j++) {
Sprite *projectile = (Sprite *)arrayProjectile->objectAtIndex(j);
if (target->boundingBox().intersectsRect(projectile->boundingBox()))
{
aarayTarget->removeObjectAtIndex(i);
arrayProjectile->removeObjectAtIndex(j);
this->removeChild(target);
this->removeChild(projectile);

            break;
        }
    }
}

2dx 3.x 有什么好的碰撞检测方法?

貌似就这种吧! 再就是 物理引擎里面的碰撞了, 不过飞机游戏没必要吧

如果是多个子弹只检测一个目标的话…这个貌似是最高效 最简单的方法吧…我之前试过把我的换成物理系统的碰撞检测 但他不是多对多的碰撞…效率比这样for还低 你找到更好地记得post message我一下-,-谢谢-,-

对于多个物体的碰撞,元素的遍历是无法避免的,所以不管哪种方法,都需要进行循环查找,唯一可做的是通过减少查找次数来提升效率,当然,碰撞的精确程度的话,就取决于你使用的包围框(或者其他方法)的类别了,越精细,通常越低效