Cocos2d-X中创建菜单的类:
CcmenuItemAtlasFont:创建带有艺术字体的菜单项
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; }
执行结果:
程序实例:创建带用艺术字的菜单项
#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; }
执行结果:
程序代码
#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; }
执行结果:
首先在工程目录下的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",'0') ); //添加菜单项 menu->addChild(itemLabelAtlas); return true; }
执行结果:
首先在工程目录下的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; }
执行结果
程序实例:使用精灵创建菜单项
程序代码
#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; }
执行结果: