0

同じボタンがクリックされたときに 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;


}
4

2 に答える 2

2

おそらく、.h ファイルの一番上の行を使用して、メニューを iVar にして、このコードの連続実行間で参照が保持されるようにする必要があります。メニューを削除した後、メニューを nil に設定します。

于 2013-04-03T11:32:30.393 に答える
0

1 つの方法 - 2 つのメニューを作成します。1 つはボタンの表示/非表示用、もう 1 つは表示/非表示にする必要があるすべてのボタン用です。それは良い方法ではありません。

もう 1 つの方法は、メニュー項目をメニューに追加/削除することです。私はそのようなことを意味します:

- (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 のドキュメントを確認してください。あなたの場合、それはまったく役に立たなかった。

于 2013-04-03T11:45:03.797 に答える