2013-04-03 37 views
0

如何添加/刪除CCMenu點擊相同的按鈕是什麼時候?我添加了一些代碼..提前的Cocos2D如何刪除/發行/清理CCMenu

謝謝..

CCMenu *menu; 


    if (!isMenuVisible) { 

      CCMenuItemSprite *item = [CCMenuItemSprite itemFromNormalSprite: .......]; 
      menu = [CCMenu menuWithItems:item, nil]; 
      [self addChild:menu]; 

} else { 

      // [menu cleanup];/// didn't work 
      // [menu removeFromParentAndCleanup:YES]; //// didnt work 
      // [menu removeAllChildrenWithCleanup:YES]; //// didn't work 

} 

    isMenuVisible = !isMenuVisible; 


} 

回答

2

你可能想在你的.h文件中的頂線,使得菜單伊娃,到給定值保持在在連續執行此代碼之間。刪除它後,將菜單設置爲零。

0

的一種方式 - 創建兩個菜單。一個用於顯示/隱藏按鈕,另一個是有要顯示/隱藏所有按鈕。這不是好的方法。

另一種方式就是添加/刪除的菜單項的菜單。我的意思是類似的東西:

- (void) removeItems 
{ 
    for(CCNode* item in _addedItems) 
    { 
     [item removeFromParentAndCleanup: YES]; 
    } 

    [_addedItems removeAllObjects]; 
} 

- (void) addItems 
{ 
    // create needed items and add them as children 
    // to your menu and add them to _addedItems array 
    // to be able to remove added objects 
} 

也使用類似cleanup方法之前,檢查它的代碼,或者至少cocos2d的文檔。在你的情況下,它是無用的。