cocos2dx学习笔记之菜单Menu和菜单项MenuItem
首先需要明确的是cocos2d-x 3.x版本不推荐使用菜单类Menu了,因为菜单的功能可以用Button,Sprite或者ImageView等经常使用的控件替代.
回想一下个人经历的实际项目,确实没有用过Menu,但是由于目前在学习的教材讲到了Menu,就顺便学习下并记录之.
首先上图介绍下Menu和MenuItem的继承关系和包含关系:
需要说明的是Menu和MenuItem(菜单和菜单项)是不可单独使用的,需要配合使用,具体方法是:
1.创建菜单项,并设置菜单项在菜单中的位置
2.创建菜单,将菜单项作为参数传入
3.图层中加入菜单,设置菜单位置
另外可以为每个菜单项MenuItem创建个1菜单Menu,这样可以省去设置菜单项MenuItem的坐标,只设置菜单Menu的坐标,但是会多创建几个菜单Menu的对象
以下是代码示例和效果图:
bool HelloWorld::init()
{if (!Layer::init()){return false;}_rootNode = CSLoader::createNode("MainScene.csb");addChild(_rootNode);_flag = (Sprite*)_rootNode->getChildByName("Sprite_1");//1.创建菜单项,并设置菜单项在菜单中的位置//MenuItemFont:字体菜单项MenuItemFont* menuItemFont = MenuItemFont::create("MenuItemFont", CC_CALLBACK_1(HelloWorld::menuItemCallBack,this));//MenuItemImage:图片菜单项MenuItemImage* menuItemImage = MenuItemImage::create("s6.png", "s6.png", CC_CALLBACK_1(HelloWorld::menuItemCallBack, this));menuItemImage->setPosition(0, -50 );//MenuItemLabel:标签菜单项MenuItemLabel* menuItemLabel = MenuItemLabel::create(Label::create("MenuItemLabel", "Arial", 30), CC_CALLBACK_1(HelloWorld::menuItemCallBack, this));menuItemLabel->setPosition(0, -100);//MenuItemToggle:开关菜单项MenuItemToggle* menuItemToggle = MenuItemToggle::createWithCallback(CC_CALLBACK_1(HelloWorld::menuItemCallBack, this), MenuItemFont::create("On"), MenuItemFont::create("Off"), NULL);menuItemToggle->setPosition(0, -150);//2.创建菜单,将菜单项作为参数传入Menu* pMenu = Menu::create(menuItemFont, menuItemImage, menuItemLabel, menuItemToggle,NULL);//3.图层中加入菜单,设置菜单位置pMenu->setPosition(480, 320);addChild(pMenu);return true;
}void HelloWorld::menuItemCallBack(Ref* sender)
{_flag->runAction(MoveBy::create(0.3, Vec2(50, 0)));
}
cocos2dx学习笔记之菜单Menu和菜单项MenuItem相关推荐
- 菜单Menu和菜单项MenuItem
一.程序的功能介绍 文件子菜单下面有新建,打开和退出子选项.视图下面有普通子选项. 二.程序分区讲解 (1)在shell窗口中添加菜单条(主菜单)--menu_Bar; 类型是菜单(Menu)样式是菜 ...
- cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)
cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明) 1.问:什么是cocos2d-x? 是一套开放源代码,主要基于c,c++语言,针对windows,linux, ...
- cocos2d-x学习笔记15:cocos2d-x教程资源总结
注:cocos2d可作为cocos2dx的参考,两者接口很相似. 名称:知易的<知易Cocos2D-iPhone开发教程> 官方地址:http://blog.sina.com.cn/s/a ...
- cocos2d-x学习笔记16:记录存储1:CCUserDefault
cocos2d-x学习笔记16:记录存储1:CCUserDefault 一.简述 CCUserDefalt作为NSUserDefalt类的cocos2d-x实现版本,承担了cocos2d-x引擎的记录 ...
- cocos2d-x 学习笔记(2)cocos2d-x重要概念,项目结构及 CCDirector 导演控件
cocos2d-x 学习笔记(2)cocos2d-x重要概念及项目结构 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色. 导演(CCDirector)在cocos2d-x引擎中, ...
- iOS:菜单控制器和菜单项:UIMenuController和UIMenuItem
菜单控制器和菜单项:弹出自定义的菜单栏窗口 提示: 1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES 2. Menu所处的View必 ...
- java菜单项_java中菜单条和菜单项,详细解析
在java作为一门非常重要的编程语言,在我们的日常使用中还是非常好用的,而且功能也是十分强大的.java中有很多的繁琐的基础知识,今天为大家介绍一下有关于菜单条和菜单项的内容,一起来看看吧. 首先说一 ...
- html 导航栏 选中状态,CSS导航菜单高亮选中菜单项
我开发了一个CSS导航菜单,并为每个导航项我写了php.file.CSS导航菜单高亮选中菜单项 homepage.php My First Try Of CSS Navigation Bar /* B ...
- mfc编程 孙鑫_孙鑫MFC学习笔记6:菜单编程
1.对菜单响应的顺序: 视类,文档类,框架类,应用程序类 2.消息的分类 3.CWnd继承自CCmdTarget类, 所以从CWnd派生出的类也可以接收WM_COMMAND消息 4.命令的消息路由 5 ...
最新文章
- 推荐系统笔记(常见架构)
- java 可用内存_总可用内存java
- 2021广西对口中职高考成绩查询,教育资讯:2021广西本科对口中职分数线公布时间 几号查分...
- 事务ACID理解复习
- mysql导出逗号_Mysql导出逗号分隔的csv文件
- VMware vSphere 7的主要新功能
- BayaiM__oracle切换归档模式步骤:
- 20200501:力扣185周赛上
- ubuntu查看安装软件的版本
- 计算机网络基础知识 - 物理层
- IDEA安装插件(在线/离线)
- 文件批量提取工具,从大量文件中批量提取指定文件的实现思路,文件批量复制
- 汽车java歌曲_开车必备100首歌曲 50首适合开车听的歌曲 2019车载歌曲 DJ流行
- web网站中常见攻击手法与原理
- [转]	 Photoshop教程8000例
- Linux下Chelsio T5调试方法
- MySQL 5.6.21下载安装之安装篇(二)
- Idea主菜单不见了(File,View等工具栏隐藏了)
- 魔兽怀旧服联盟服务器不稳定,魔兽世界怀旧服转服服务关闭最后一天,联盟部落新的对抗...
- 简单的分布式爬虫(下载小说)