2012-01-15 6 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に設定する方法をスケジュールすることをお勧めします。