Cocos2d iphone 从NSMutableArray读取精灵以检测碰撞

Cocos2d iphone 从NSMutableArray读取精灵以检测碰撞,cocos2d-iphone,collision,Cocos2d Iphone,Collision,我正在向NSMutableArray添加精灵,如下所示: NSMutableArray * movableSprites; NSString *image = [images objectAtIndex:3]; CCSprite *sprite = [CCSprite spriteWithFile:image]; sprite.position = ccp(AREA_A2_X2 - (i * 56), AREA_A3A5A4_Y)

我正在向NSMutableArray添加精灵,如下所示:

        NSMutableArray * movableSprites;

        NSString *image = [images objectAtIndex:3];
        CCSprite *sprite = [CCSprite spriteWithFile:image];
        sprite.position = ccp(AREA_A2_X2 - (i * 56), AREA_A3A5A4_Y);
        [self addChild:sprite];
        [movableSprites addObject:sprite];
到目前为止还不错

现在我试图检测它们之间的碰撞。用户可以移动精灵,但我希望精灵被彼此阻挡

所以,当我在翻译它们的时候,我希望它发生在那里。顺便问一下,这是进行碰撞检测的最佳地点吗

- (void)panForTranslation:(CGPoint)translation {
    if (selSprite) {
我打算在循环中执行以下操作:

    CGRect rect1 = [SpriteUtilities positionRect:selSprite];

    CGRect rect2 = [SpriteUtilities positionRect:EVERY_OTHER_SPRITE];

    if (!CGRectIsNull(CGRectIntersection(rect1, rect2))) {
        //handle collision
    }
问题是。。。我没有找到NSMutableArray方法来检索sprite对象


谢谢你的帮助。

好的。。。在读了几遍之后,我了解到:

CCSprite *toCollide;
for (int i = 0; i < [movableSprites count]; i++){

    toCollide = [movableSprites objectAtIndex:i];
...
CCSprite*toCollide;
对于(int i=0;i<[movableSprites count];i++){
toCollide=[movableSpites objectAtIndex:i];
...

无论如何,谢谢!!希望它能帮助其他人!

如果你使用问题的代码,接下来你会想知道为什么数组是空的!你没有创建数组对象,比如moveableSprites=[[NSMutableArray]retain];(retain如果你不使用ARC,别忘了在dealloc中释放)。