Cocos2d iphone cocos2d创建动态菜单列表

Cocos2d iphone cocos2d创建动态菜单列表,cocos2d-iphone,menuitem,Cocos2d Iphone,Menuitem,如何动态创建CCMenuItem列表 //Returns me an array with my items Items *items = [ItemParser loadItemsForLevel:selectedLevel fromSuperLevel:selectedSuperLevel]; 对于一个项目,我有一个字符串,其中包含要在我的ccmen中显示的项目名称。项目的数量可能会有所不同,但我希望一次只显示6个项目 我该如何移除它?我正在从CCLayer清理,但我也想从菜单列表中清理

如何动态创建
CCMenuItem
列表

//Returns me an array with my items
Items *items = [ItemParser loadItemsForLevel:selectedLevel fromSuperLevel:selectedSuperLevel];
对于一个项目,我有一个字符串,其中包含要在我的
ccmen
中显示的项目名称。项目的数量可能会有所不同,但我希望一次只显示6个项目

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


有人吗?

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;
}
更新:
当您的菜单项更改时,请重新生成整个菜单。

我不确定是否可以保留此功能。。。需要删除项目和要更新的列表;当菜单项更改时,请重新生成整个菜单。