Cocos2d-X中创建菜单项

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;
}

执行结果:


程序实例:创建带用艺术字的菜单

首先在工程目录下添加一张带有艺术字的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;
}


执行结果:



程序实例:创建带有图片菜单

我使用的是建立工程时程序自带图片

程序代码

#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;
}


执行结果:



相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...