2012-02-27 147 views
0

如何動態創建CCMenuItem列表?cocos2d創建動態菜單列表

//Returns me an array with my items 
Items *items = [ItemParser loadItemsForLevel:selectedLevel fromSuperLevel:selectedSuperLevel]; 

對於我有,我想在我的CCMenu顯示項目的名稱的字符串的項目。項目的數量可能會有所不同,但我想一次只顯示6個項目

以及如何刪除它?我正在清理CCLayer,但我也想從菜單列表中執行此操作

有人嗎?

回答

1

Cocos2D不提供這樣做的方法。

您可以根據在「CCMenu.m」中找到的原始構建器創建您自己的初始化程序。 原始看起來像這樣(爲了清晰起見,我刪除了不添加項目的代碼)。根據原始創建自己的init方法,並添加可變數量的項目。如果您喜歡,也可以將其設置爲CCMenu的一個類別。

-(id) initWithItems: (CCMenuItem*) item vaList: (va_list) args 
{ 
    if((self=[super init])) { 

     // ... code cut for clarity 

     if (item) { 
      [self addChild: item z:z]; 
      CCMenuItem *i = va_arg(args, CCMenuItem*); 
      while(i) { 
       z++; 
       [self addChild: i z:z]; 
       i = va_arg(args, CCMenuItem*); 
      } 
     } 

     // ... code cut for clarity 

    } 

    return self; 
} 

更新: 當你的菜單項變化,則重建整個菜單。

+0

我不確定這是否可以維持...需要刪除項目和要更新的列表; – 2012-02-27 13:38:39

+0

當你的菜單項改變,然後重建整個菜單。 – phlebotinum 2012-02-27 14:13:21