码迷,mamicode.com
首页 > 其他好文 > 详细

Cocos2d-X中创建菜单项

时间:2014-10-14 01:19:47      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   使用   ar   文件   sp   

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

执行结果:

bubuko.com,布布扣


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

首先在工程目录下添加一张带有艺术字的png格式图片

bubuko.com,布布扣


添加下面的代码

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


执行结果:

bubuko.com,布布扣


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

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

程序代码

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

执行结果:

bubuko.com,布布扣


程序实例:用标签创建菜单项

程序代码:

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


执行结果:

bubuko.com,布布扣


程序实例:用标签创建菜单项并且实现彩色文本

首先在工程目录下的Resource文件夹中添加一张png格式的图片

bubuko.com,布布扣


程序代码

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

执行结果:

bubuko.com,布布扣


程序实例:用标签创建菜单项并且实现彩色文本二

首先在工程目录下的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;
}

执行结果

bubuko.com,布布扣


程序实例:使用精灵创建菜单项

创建精灵使用的是工程自带的图片

程序代码

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

执行结果:

bubuko.com,布布扣



程序实例:创建可以来回切换的菜单项如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;
}

执行结果:

bubuko.com,布布扣





Cocos2d-X中创建菜单项

标签:style   blog   http   color   os   使用   ar   文件   sp   

原文地址:http://blog.csdn.net/u010105970/article/details/40053683

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!