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中创建菜单项的更多相关文章

  1. cocos2dx中的菜单项CCMenuItem及其五个子类的使用

    /*CCMenuItem是一个虚基类,因此必须实现它的五个子类之一,再把子类对象赋给父类指针,相当于多态*/ CCMenuItem *fontItem = CCMenuItemFont::create ...

  2. Unity 3D编辑器扩展介绍、教程(一) —— 创建菜单项

    Unity编辑器扩展教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introduct ...

  3. 如何:对 SharePoint 列表项隐藏 ECB 中的菜单项

    可以通过使用功能框架向编辑控制块 (ECB) 菜单添加新的自定义操作.但是,您不能使用此方法进行相反的操作,即隐藏现有的 ECB 菜单项,因为它们是通过使用 ECMAScript(JavaScript ...

  4. Delphi在系统菜单中添加菜单项

    unit dy219; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  5. Unity 3D中的菜单项

    1.File菜单:主要是包含项目和场景的创建.保存以及输出等功能.2.Edit(编辑)菜单:只要包括对场景进行一系列的编辑以及环境设置操作等命令.3.Assets(资源)菜单:掌握资源在Unity中的 ...

  6. mfc 小程序---在系统菜单中添加菜单项

    1建立一个对话框工程:在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码: m_pMenu=GetSystemMenu(FALSE);//获取系统菜单的指针 m ...

  7. CentOS删除Applications中的菜单项

    有时候会错误的安装一些软件,可能安装被不成功,但是在左上角的Applications菜单中还是会显示出来,让人很不爽. 现在介绍一个删除掉CentOS Applications中菜单项的方法: 1.安 ...

  8. java学习:AWT组件和事件处理的笔记(1)--菜单条,菜单,菜单项

    菜单放在菜单条里,菜单项放在菜单里1.MenuBar    在java.awt包中,负责创建菜单条,即MenuBar的一个实例,便是一个菜单条.    在Frame类中的setMenuBar(Menu ...

  9. WijmoJS 以声明方式添加 Vue 菜单项

    WijmoJS 以声明方式添加 Vue 菜单项 在V2019.0 Update2 的全新版本中,Vue框架下 WijmoJS 的前端UI组件功能得到再度增强. 如今,向wj菜单组件添加项的方法将不限于 ...

随机推荐

  1. 强联通分量(tarjan算法+算法简介)

    题目描述 ›对于一个有向图顶点的子集S,如果在S内任取两个顶点u和v,都能找到一条从u到v的路径,那么就称S是强连通的.如果在强连通的顶点集合S中加入其他任意顶点集合后,它都不再是强连通的,那么就称S ...

  2. android关于fragment的构造函数用法建议

    错误信息 Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArgumen ...

  3. Oracle高级函数

    http://www.cnblogs.com/chen1388/archive/2010/07/06/1771919.html decode函数: decode(aa, 1, 'xs', 2, 'ps ...

  4. SRM 733 Div 1 爆零记

    开场写easy(有预感要FST) 然后medium就卡住了. 我只知道$n$个点的生成树个数是$n^{n-2}$ 接下来直接狗带…… $Problem 250pts$ 水题,直接枚举然后记录答案(我大 ...

  5. 使用CXF开发RESTFul服务

    相信大家在阅读CXF官方文档(http://cxf.apache.org/docs/index.html)时,总是一知半解.这里向大家推荐一本PacktPub.Apache.CXF.Web.Servi ...

  6. Array方法介绍

    Array 是抽象基类,抽象基类不能创建它的对象 定义的数组: int[,] myArr4=new int[2,3]{{1,2,3},{4,5,6}}; int[, ,] myArr3 = new i ...

  7. 线程同步工具之CountDownLatch

    CountDownLatch,一个同步辅助类,在完成一组其他线程汇总执行的操作前,它允许一个或多个线程一直等待 主要方法:      public CountDownLatch(int count); ...

  8. UIPanGestureRecognizer判断滑动的方向

    .h文件 CGFloat const gestureMinimumTranslation = 20.0 ; typedef enum : NSInteger { kCameraMoveDirectio ...

  9. 为Chrome多账户添加单独的快捷方式

    Chrome的多账户功能非常好用,每个账户都有自己的独立的收藏夹.个人设置等.但是,当你要使用的账户不是默认账户时,必须经过一个切换的操作.本文将简单的介绍一个如何各账户添加快捷方式,从而实现直接登陆 ...

  10. MSSQL收缩事务日志&日志文件过大无法收缩

    原文:MSSQL收缩事务日志&日志文件过大无法收缩 一.MS SQL SERVER 2005 --1.清空日志 exec('DUMP TRANSACTION 数据库名 WITH NO_LOG' ...