cocos2d创建动态菜单列表

时间:2012-02-27 08:47:56

标签: cocos2d-iphone menuitem

如何动态创建CCMenuItem列表?

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

对于一个项目,我有一个字符串,其中包含我要在CCMenu中显示的项目的名称。项目数量可能有所不同,但我想一次只显示6个项目

如何删除它?我正在从CCLayer清理,但我也想从菜单列表中进行清理

任何?

1 个答案:

答案 0 :(得分: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;
}

<强>更新 菜单项更改后,重建整个菜单。

相关问题