cocos2d-x 文本菜单颜色

// ------------ 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));

你可能感兴趣的:(cocos2d-x 文本菜单颜色)