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;
}
运行结果:
程序实例:创建带用艺术字的菜单项
首先在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;
}
运行结果:
Cocos2d-X中创建菜单项的更多相关文章
- cocos2dx中的菜单项CCMenuItem及其五个子类的使用
/*CCMenuItem是一个虚基类,因此必须实现它的五个子类之一,再把子类对象赋给父类指针,相当于多态*/ CCMenuItem *fontItem = CCMenuItemFont::create ...
- Unity 3D编辑器扩展介绍、教程(一) —— 创建菜单项
Unity编辑器扩展教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introduct ...
- 如何:对 SharePoint 列表项隐藏 ECB 中的菜单项
可以通过使用功能框架向编辑控制块 (ECB) 菜单添加新的自定义操作.但是,您不能使用此方法进行相反的操作,即隐藏现有的 ECB 菜单项,因为它们是通过使用 ECMAScript(JavaScript ...
- Delphi在系统菜单中添加菜单项
unit dy219; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- Unity 3D中的菜单项
1.File菜单:主要是包含项目和场景的创建.保存以及输出等功能.2.Edit(编辑)菜单:只要包括对场景进行一系列的编辑以及环境设置操作等命令.3.Assets(资源)菜单:掌握资源在Unity中的 ...
- mfc 小程序---在系统菜单中添加菜单项
1建立一个对话框工程:在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码: m_pMenu=GetSystemMenu(FALSE);//获取系统菜单的指针 m ...
- CentOS删除Applications中的菜单项
有时候会错误的安装一些软件,可能安装被不成功,但是在左上角的Applications菜单中还是会显示出来,让人很不爽. 现在介绍一个删除掉CentOS Applications中菜单项的方法: 1.安 ...
- java学习:AWT组件和事件处理的笔记(1)--菜单条,菜单,菜单项
菜单放在菜单条里,菜单项放在菜单里1.MenuBar 在java.awt包中,负责创建菜单条,即MenuBar的一个实例,便是一个菜单条. 在Frame类中的setMenuBar(Menu ...
- WijmoJS 以声明方式添加 Vue 菜单项
WijmoJS 以声明方式添加 Vue 菜单项 在V2019.0 Update2 的全新版本中,Vue框架下 WijmoJS 的前端UI组件功能得到再度增强. 如今,向wj菜单组件添加项的方法将不限于 ...
随机推荐
- 强联通分量(tarjan算法+算法简介)
题目描述 对于一个有向图顶点的子集S,如果在S内任取两个顶点u和v,都能找到一条从u到v的路径,那么就称S是强连通的.如果在强连通的顶点集合S中加入其他任意顶点集合后,它都不再是强连通的,那么就称S ...
- android关于fragment的构造函数用法建议
错误信息 Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArgumen ...
- Oracle高级函数
http://www.cnblogs.com/chen1388/archive/2010/07/06/1771919.html decode函数: decode(aa, 1, 'xs', 2, 'ps ...
- SRM 733 Div 1 爆零记
开场写easy(有预感要FST) 然后medium就卡住了. 我只知道$n$个点的生成树个数是$n^{n-2}$ 接下来直接狗带…… $Problem 250pts$ 水题,直接枚举然后记录答案(我大 ...
- 使用CXF开发RESTFul服务
相信大家在阅读CXF官方文档(http://cxf.apache.org/docs/index.html)时,总是一知半解.这里向大家推荐一本PacktPub.Apache.CXF.Web.Servi ...
- Array方法介绍
Array 是抽象基类,抽象基类不能创建它的对象 定义的数组: int[,] myArr4=new int[2,3]{{1,2,3},{4,5,6}}; int[, ,] myArr3 = new i ...
- 线程同步工具之CountDownLatch
CountDownLatch,一个同步辅助类,在完成一组其他线程汇总执行的操作前,它允许一个或多个线程一直等待 主要方法: public CountDownLatch(int count); ...
- UIPanGestureRecognizer判断滑动的方向
.h文件 CGFloat const gestureMinimumTranslation = 20.0 ; typedef enum : NSInteger { kCameraMoveDirectio ...
- 为Chrome多账户添加单独的快捷方式
Chrome的多账户功能非常好用,每个账户都有自己的独立的收藏夹.个人设置等.但是,当你要使用的账户不是默认账户时,必须经过一个切换的操作.本文将简单的介绍一个如何各账户添加快捷方式,从而实现直接登陆 ...
- MSSQL收缩事务日志&日志文件过大无法收缩
原文:MSSQL收缩事务日志&日志文件过大无法收缩 一.MS SQL SERVER 2005 --1.清空日志 exec('DUMP TRANSACTION 数据库名 WITH NO_LOG' ...