Я столкнулся с этой проблемой.
Я создаю игру с cocos2d, с физикой Box2D. чтобы уничтожить моего оппонента, к нему был применен тег (в данном случае, тег = MONSTER1).
Я создал BOOL _invincible
и int _livesenemy
;
Я дал им несколько жизней, введя метод init
_livesenemy1 = 2;
чтобы уничтожить монстра, которого я добавил
if (!_invincible) {
if ((spriteA.tag == MONSTER1 && spriteB.tag == LASER2) ||
(spriteB.tag == MONSTER1 && spriteA.tag == LASER2)) {
_livesenemy1--;
[[SimpleAudioEngine sharedEngine] playEffect:@"whine.wav"];
if (_livesenemy1 == 0) {
if (spriteA.tag == MONSTER1) [self markToDelete:[NSValue valueWithPointer:bodyA]];
else [self markToDelete:[NSValue valueWithPointer:bodyB]];
}
_invincible = YES;
{
_invincible = NO;
}
if (spriteA.tag == LASER2) [self markToDelete:[NSValue valueWithPointer:bodyA]];
else [self markToDelete:[NSValue valueWithPointer:bodyB]];
}
}
проблема в том, что я уничтожаю только первого монстра, и ничего не происходит с теми, кто после