展会信息港展会大全

Cocos2d-X中创建菜单项
来源:互联网   发布日期:2015-09-27 15:31:33   浏览:2661次  

导读: Cocos2d-X中创建菜单的类: CCMenuItemFont:创建纯文本的菜单项 CCMenuItemAtlasFont:创建带有艺术字体的菜单项 CCMenuItemImage:用图片创...

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", "labelatlasimg.png", 24, 32, '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;

}

执行结果:

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港