Обнаружить столкновение между 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
По этой ссылке вы можете получить представление о том, что вы должны сделать, чтобы добиться столкновения между спрайтами