применяется к жизни врагов - PullRequest
0 голосов
/ 15 января 2012

Я столкнулся с этой проблемой.

Я создаю игру с 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]];
    }

}

проблема в том, что я уничтожаю только первого монстра, и ничего не происходит с теми, кто после

1 Ответ

0 голосов
/ 18 января 2012

Я думаю, что с вами происходит то, что вы устанавливаете _invincible = NO; просто там вы не мешаете игре запускать этот код несколько раз, когда ваши объекты сталкиваются. Я рекомендую вам удалить эту строку и запланировать метод, чтобы установить для нее значение NO после удаления объектов и, таким образом, больше не сталкиваться.

...