2012-01-15 2 views
0

이 문제가 발생했습니다.적에게 적용

Box2D 물리와 함께 cocos2d로 게임을 만들고 있습니다. 내 상대를 파괴하기 위해 그들에게 적용된 태그가 있습니다 (이 경우, tag = MONSTER1).

나는 BOOL _invincibleint _livesenemy을 만들었습니다.

가 나는 문제가 나는 첫 번째 몬스터를 파괴한다는 것이다

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]]; 
    } 

} 

을 추가 한 몬스터를 파괴하는 init 메소드

_livesenemy1 = 2; 

에 넣어 그들에게 삶의 번호를주고, 그 이후에 아무 일도 일어나지 않는다.

+0

디버깅에서 무엇을 배웠습니까? – Andrew

+0

어떻게 괴물을 만들고 있습니까? –

+0

어쩌면 질문의 설명을 변경하면 더 많은 사람들이 그것을 볼 것입니다. 그냥 제안하는 중이다. – aslisabanci

답변

0

나는 너에게 _invincible = NO를 설정하고 있기 때문에 그렇게 생각한다. 그 안에있는 객체가 충돌 할 때 해당 코드를 여러 번 실행하지 않아도됩니다. 해당 줄을 제거하고 개체가 제거 된 후 더 이상 충돌하지 않도록 NO로 설정하는 방법을 예약하는 것이 좋습니다.

관련 문제