// ------------ menu list ------------ //
CCMenuItemFont *playButton = CCMenuItemFont::itemFromString("New Game",
this, menu_selector(GameStartScene::menuNewGame));
CCMenuItemFont *ResumeButton = CCMenuItemFont::itemFromString("Resume Game",
this, menu_selector(GameStartScene::menuResumeGame));
CCMenuItemFont *ControlButton = CCMenuItemFont::itemFromString("Game control",
this, menu_selector(GameStartScene::menuGameControl));
CCMenuItemFont *ExitButton = CCMenuItemFont::itemFromString("Game Exit",
this, menu_selector(GameStartScene::menuCloseCallback));
// Create menu that contains our buttons
CCMenu *menu = CCMenu::menuWithItems(playButton, ResumeButton , ControlButton, ExitButton, NULL);
menu->setColor(ccc3(0, 0, 255)); // 指定菜单为蓝色
menu->alignItemsVertically(); // 设置菜单纵向排列
menu->setPosition(ccp(size.width/2, pLabel->getPosition().y - pLabel->getContentSize().height - 80));
// Add menu to layer
this->addChild(menu, 2);
如下图所示,上述的代码创建了4个纵向排列的4个文本菜单,并且同意指定为蓝色
如果需要将菜单指定不同的颜色,有两种办法可以实现:
1. 如果每个菜单的颜色都不相同,就不要使用
menu->setColor(ccc3(0, 0, 255));
统一设置颜色的方法,拿"New Game"菜单为例
CCMenuItemFont *playButton = CCMenuItemFont::itemFromString("New Game",
this, menu_selector(GameStartScene::menuNewGame));
playButton ->setColor(ccc3(100, 100, 100));
这样就为New Game菜单指定了特定的颜色,同理,可以对其他按钮指定不同的颜色。
2. 如果只有一个菜单需要指定颜色,其他所有的菜单都保持同一种颜色,使用方法1当然也可以,但是其他所有菜单就重复指定同一个颜色,
太罗嗦了,首先使用
menu->setColor(ccc3(0, 0, 255));
统一指定蓝色,再在
menu->setColor(ccc3(0, 0, 255));之后指定该菜单的颜色。
menu->setColor(ccc3(0, 0, 255));
playButton ->setColor(ccc3(100, 100, 100));