如何动态创建CCMenuItem
列表?
//Returns me an array with my items
Items *items = [ItemParser loadItemsForLevel:selectedLevel fromSuperLevel:selectedSuperLevel];
对于一个项目,我有一个字符串,其中包含我要在CCMenu
中显示的项目的名称。项目数量可能有所不同,但我想一次只显示6个项目
如何删除它?我正在从CCLayer清理,但我也想从菜单列表中进行清理
任何?
答案 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;
}
<强>更新 菜单项更改后,重建整个菜单。