2013-06-19 258 views
0

是否可以在CCMenu中組織按鈕,使它們的功能類似於任何菜單?例如該瀏覽器的文件,編輯,視圖等。cocos2d中的菜單層次結構

我現在使用的是標準:

CCMenu *selectMenu = [CCMenu menuWithItems: item1, item2... nil]; 
[selectMenu alignItemsHorizontallyWithPadding:15]; 
CGSize winSize = [CCDirector sharedDirector].winSize; 
CGPoint topLeft = CGPointMake(winSize.width/2.0, winSize.height/1.035); 
[selectMenu setPosition:topLeft]; 
[self addChild:selectMenu]; 

這是工作,但我有太多的按鈕在一排對準,所以這個問題。

回答

0

這是可能的,但是當用戶單擊菜單項時,您將不得不創建子菜單。

事情是這樣的:

CCMenu *menu = nil; 

    CCMenuItem *item = [CCMenuItemFont itemWithString:@"Edit" block:^(id sender) { 

     CCMenu *submenu = nil; 

     CCMenuItem *subitem = [CCMenuItemFont itemWithString:@"SubItem" block:^(id sender) { 
      //Do Stuff here 
      [submenu removeFromParent]; 
     }]; 

     CCMenuItem *subitem2 = [CCMenuItemFont itemWithString:@"CloseSubMenu" block:^(id sender) { 

      [submenu removeFromParent]; 
     }]; 

     submenu = [CCMenu menuWithItems:subitem,subitem2, nil]; 

     [menu addChild:submenu]; 

    } ]; 

    menu = [CCMenu menuWithItems:item, nil]; 

    [self addChild:menu]; 

你仍然需要設置的位置,以確保它看起來確定在屏幕上。