Обнаружить столкновение между CCSprite

Я новичок в разработке Cocos2d в IOS. Я хочу реализовать столкновение между двумя моими спрайтами knight а также coins, Так что для моего 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 ответа

Решение

В вашем 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;
     }
}

Для обнаружения обнаружения коллизий между спрайтами вы можете использовать функцию CGRectIntersectsRect, чтобы проверить, есть ли коллизия между спрайтами.

Вы можете обратиться по этой ссылке для этого.: http://www.raywenderlich.com/25736/how-to-make-a-simple-iphone-game-with-cocos2d-2-x-tutorial

По этой ссылке вы можете получить представление о том, что вы должны сделать, чтобы добиться столкновения между спрайтами

Другие вопросы по тегам