2013-08-30 69 views

回答

1

我們將sprite作爲b2body的userdata。所以,如果你想刪除具有特定精靈的身體作爲用戶數據,那麼你必須通過所有現在在世界中的身體,然後逐一比較他們,如果你發現那個,然後刪除相應的身體。假設你想刪除CCSprite * temp對應的主體;

for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext()) { 
if (b->GetUserData() != NULL) { 
      CCSprite *sprite = (CCSprite *)b->GetUserData();  
      if (sprite==temp) { 
       world->destroyBody(b); 
       break; 
      } 
} 
+0

我有關節連接到那個身體。我認爲這是原因,身體沒有被破壞。 – Alisa

+0

是的,首先,您必須刪除與身體相關的所有內容,然後移除該身體。如果你不這樣做,那麼有可能獲得exc_bad_access錯誤信號。 – Renaissance