Cocos2d-X中创建菜单的类:
CCMenuItemFont:创建纯文本的菜单项
CCMenuItemAtlasFont:创建带有艺术字体的菜单项
CCMenuItemImage:用图片创建菜单项
CCMenuItemLabel:用标签创建菜单项
CCMenuItemSprite:用精灵创建菜单项
CCMenuItemToggle:创建能够来回切换的菜单项如ON/OFF
程序实例:创建一个纯文本菜单项
程序代码:
#include "MenuItem.h"
CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();
    
    MenuItem* layer = MenuItem::create();
    scene->addChild(layer);
    return scene;
}
bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();
    //得到窗体的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    //创建一个Menu(看不到效果,Menu仅仅是一个容器)
    CCMenu* menu = CCMenu::create();
    //加入菜单
    addChild(menu);
    //创建一个仅仅显示文本的菜单项
    CCMenuItemFont* itemFont = CCMenuItemFont::create("This is Font");
    //加入菜单项
    menu->addChild(itemFont);
    return true;
}
运行结果:
程序实例:创建带用艺术字的菜单项
首先在project文件夹下加入一张带有艺术字的png格式图片
加入以下的代码
#include "MenuItem.h"
CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();
    
    MenuItem* layer = MenuItem::create();
    scene->addChild(layer);
    return scene;
}
bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();
    //得到窗体的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    //创建一个Menu(看不到效果,Menu仅仅是一个容器)
    CCMenu* menu = CCMenu::create();
    //加入Menu
    addChild(menu);
    //创建一个带有艺术字体的菜单
    CCMenuItemAtlasFont* itemAtlas = CCMenuItemAtlasFont::create("123456", "labelatlasimg.png", 24, 32, '0');
    
    //加入菜单项
    menu->addChild(itemAtlas);
    return true;
}
运行结果:
程序实例:创建带有图片的菜单项
我使用的是建立project时程序自带的图片
程序代码
#include "MenuItem.h"
CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();
    
    MenuItem* layer = MenuItem::create();
    scene->addChild(layer);
    return scene;
}
bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();
    //得到窗体的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    //创建一个Menu(看不到效果。Menu仅仅是一个容器)
    CCMenu* menu = CCMenu::create();
    //加入Menu
    addChild(menu);
    //创建带有图片的菜单项
    CCMenuItemImage* itemImage = CCMenuItemImage::create("CloseNormal.png", "CloseSelected.png");
    
    //加入菜单项
    menu->addChild(itemImage);
    return true;
}
运行结果:
程序实例:用标签创建菜单项
程序代码:
#include "MenuItem.h"
CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();
    
    MenuItem* layer = MenuItem::create();
    scene->addChild(layer);
    return scene;
}
bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();
    //得到窗体的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    //创建一个Menu(看不到效果。Menu仅仅是一个容器)
    CCMenu* menu = CCMenu::create();
    //加入Menu
    addChild(menu);
    //用标签创建菜单项
   CCMenuItemLabel* itemLabelTTF = CCMenuItemLabel::create(
			CCLabelTTF::create("This is Label TTF item", "Arial", 36)
			);
   //加入菜单项目
   menu->addChild(itemLabelTTF);
    return true;
}
运行结果:
程序实例:用标签创建菜单项而且实现彩色文本
首先在project文件夹下的Resource文件夹中加入一张png格式的图片
程序代码
#include "MenuItem.h"
CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();
    
    MenuItem* layer = MenuItem::create();
    scene->addChild(layer);
    return scene;
}
bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();
    //得到窗体的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    //创建一个Menu(看不到效果。Menu仅仅是一个容器)
    CCMenu* menu = CCMenu::create();
    //加入Menu
    addChild(menu);
   //用标签创建菜单项。而且实现显示彩色的文本
  	CCMenuItemLabel* itemLabelAtlas = CCMenuItemLabel::create(
			CCLabelAtlas::create("123456", "labelatlasimg.png", 24, 32, '0')
			);
    
    //加入菜单项
    menu->addChild(itemLabelAtlas);
    return true;
}
运行结果:
程序实例:用标签创建菜单项而且实现彩色文本二
首先在project文件夹下的Resource文件夹中加入一个fnt格式的字体文件
程序代码
#include "MenuItem.h"
CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();
    
    MenuItem* layer = MenuItem::create();
    scene->addChild(layer);
    return scene;
}
bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();
    //得到窗体的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    //创建一个Menu(看不到效果,Menu仅仅是一个容器)
    CCMenu* menu = CCMenu::create();
    //加入Menu
    addChild(menu);
    //用艺术字体创建菜单项
    CCMenuItemLabel* itemLabelBMFont = CCMenuItemLabel::create(
			CCLabelBMFont::create("This is BMFONT item", "bitmapFontTest.fnt")
			);
        
        //加入菜单项
		menu->addChild(itemLabelBMFont);
    return true;
}
运行结果
程序实例:使用精灵创建菜单项
创建精灵使用的是project自带的图片
程序代码
#include "MenuItem.h"
CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();
    
    MenuItem* layer = MenuItem::create();
    scene->addChild(layer);
    return scene;
}
bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();
    //得到窗体的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    //创建一个Menu(看不到效果,Menu仅仅是一个容器)
    CCMenu* menu = CCMenu::create();
    //加入Menu
    addChild(menu);
     //用精灵创建菜单项
    CCMenuItemSprite* itemSprite = CCMenuItemSprite::create(
             CCSprite::create("CloseNormal.png"), 
			CCSprite::create("CloseSelected.png"));
	
    //加入菜单项
    menu->addChild(itemSprite);
    return true;
}
运行结果:
程序实例:创建能够来回切换的菜单项如ON/OFF
程序代码
#include "MenuItem.h"
CCScene* MenuItem::scene()
{
    CCScene* scene = CCScene::create();
    
    MenuItem* layer = MenuItem::create();
    scene->addChild(layer);
    return scene;
}
bool MenuItem::init()
{
    //初始化父类层
    CCLayer::init();
    //得到窗体的尺寸
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    //创建一个Menu(看不到效果,Menu仅仅是一个容器)
    CCMenu* menu = CCMenu::create();
    //加入Menu
    addChild(menu);
     //创建能够来回切换的菜单
    //创建菜单项的选项
    CCMenuItem* subItem1 = CCMenuItemFont::create("ON");
	CCMenuItem* subItem2 = CCMenuItemFont::create("OFF");
	CCMenuItem* subItem3 = CCMenuItemFont::create("ON/OFF");
	
    //菜单项中加入选项
    CCMenuItemToggle* itemToggle = CCMenuItemToggle::create(subItem1);
    itemToggle->addSubItem(subItem2);
    itemToggle->addSubItem(subItem3);
	
    //加入菜单项
    menu->addChild(itemToggle);
    //自己主动对齐菜单项
	menu->alignItemsVertically();
    return true;
}
运行结果:
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号