2012-01-15 50 views
0

我就遇到了這個問題。應用於敵人住

我創造與cocos2d的遊戲,與Box2D的物理學。摧毀我的對手我有一個標籤應用於他們(在這種情況下,標籤= MONSTER1)。

我創建了一個BOOL _invincibleint _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]]; 
    } 

} 

的問題是,我只破壞了第一妖的怪物,什麼也沒有發生那些

+0

你有什麼話從調試學到了什麼? – Andrew 2012-01-15 17:09:23

+0

你是如何製作怪物的? – 2012-01-15 20:27:20

+0

也許如果你改變你的問題的描述,那麼更多的人會看看它。只是建議... – aslisabanci 2012-01-18 11:46:22

回答

0

後,我認爲是發生在你的是,因爲你設置_invincible = NO; 只是裏面有,你是不是從運行的代碼多次停止比賽,當你的對象碰撞。我建議您刪除該行並安排一種方法,在刪除對象後將其設置爲NO,從而不再發生碰撞。