检测CCSprite之间的冲突

时间:2013-07-18 06:51:05

标签: ios objective-c cocos2d-iphone kobold2d

我是ios中Cocos2d开发的新手。我想在我的两个精灵knightcoins之间实现碰撞。所以对于我的coins精灵,我尝试了类似下面的内容:

- (void)coinSidewaysRowOne {

self.visible = YES;

if (coinSide1 == FALSE)
{
    coinSide1 = TRUE;
    NSLog(@"coinSide1 = TRUE");
    NSInteger originalX = 150;
    for(int i = 0; i < 8; i++)
    {
        CCSprite *coinHorizontal = [CCSprite spriteWithFile:@"bubble.png"];
        coinHorizontal.position = ccp(originalX, 150);
        originalX += 20;
        [self addChild:coinHorizontal];
        [self.coinArray addObject:coinHorizontal];
    }
}
}

并将其放入我的更新方法

[self coinSidewaysRowOne];

然后我在NSMutableArray方法中创建了.h属性:

@property (nonatomic, assign) NSMutableArray *coinArray;

如您所见,我在[self.coinArray addObject:coinHorizontal];方法

中添加了这一行coinSidewaysRowOne

如何将其写入我的阵列并检测骑士和硬币精灵之间的碰撞。

我期待这样的事情:

(void)coinGotCollected {
    coin.visible = FALSE;
    coin.position = ccp(-MAX_INT, 0);
    [Store addInAppCurrency:coinValue];
}

非常感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:4)

update方法中:

for (CCSprite *coin in self.coinArray)
{
    if (CGRectIntersectsRect(knight.boundingBox, coin.boundingBox))
     {
        [self processCollision];//do what you need when a collision is detected
         break;
     }
}

答案 1 :(得分:1)

为了检测精灵之间的碰撞检测,您可以使用函数 CGRectIntersectsRect 来检查精灵之间是否存在碰撞。

您可以参考此链接。http://www.raywenderlich.com/25736/how-to-make-a-simple-iphone-game-with-cocos2d-2-x-tutorial

参考此链接,您可以了解应该如何实现精灵之间的碰撞