实例介绍Cocos2d-x开关菜单
实例 介绍 菜单 cocos2d 开关
2023-09-14 08:59:50 时间
static MenuItemToggle*createWithCallback ( const ccMenuCallback callback, //菜单操作的回调函数指针 MenuItem * item, //进行切换的菜单项 )
从第二个参数开始都是MenuItem类的实例对象它们是开关菜单显示的菜单项它们可以是文本、图片和精灵类型的菜单项但是最后不用忘记NULL结尾。
下面代码是简单形式的文本类型的开关菜单
auto toggleMenuItem =MenuItemToggle::createWithCallback( CC_CALLBACK_1(HelloWorld::menuItem1Callback,this), MenuItemFont::create("On" ), MenuItemFont::create("Off"), NULL ); Menu* mn = Menu::create(toggleMenuItem,NULL); this- addChild(mn);
下面我们通过一个实例介绍一下其它的复杂类型的开关菜单的使用这个实例如下图所示是一个游戏音效和背景音乐设置界面我们可以通过开关菜单实现这个功能我们的美术设计师为每一个设置项目音效和背景音乐分别准备了两个图片。
下面我们看看实例代码的实现HelloWorldScene.cpp中使用MenuItemSprite菜单项的代码如下
bool HelloWorld::init() if ( !Layer::init() ) return false; Size visibleSize = Director::getInstance()- getVisibleSize(); Point origin = Director::getInstance()- getVisibleOrigin(); Sprite *bg = Sprite::create("menu/background.png"); bg- setPosition(Point(origin.x + visibleSize.width/2, origin.y +visibleSize.height /2)); this- addChild(bg); //音效 auto soundOnMenuItem = MenuItemImage::create( "menu/on.png", "menu/on.png"); ① auto soundOffMenuItem = MenuItemImage::create( "menu/off.png", "menu/off.png"); ② auto soundToggleMenuItem = MenuItemToggle::createWithCallback( CC_CALLBACK_1(HelloWorld::menuSoundToggleCallback,this), soundOnMenuItem, soundOffMenuItem, NULL); ③ soundToggleMenuItem- setPosition( Director::getInstance()- convertToGL(Point(818,220))); //音乐 auto musicOnMenuItem =MenuItemImage::create( "menu/on.png", "menu/on.png"); ④ automusicOffMenuItem =MenuItemImage::create( "menu/off.png", "menu/off.png"); ⑤ auto musicToggleMenuItem = MenuItemToggle::createWithCallback( CC_CALLBACK_1(HelloWorld::menuMusicToggleCallback,this), musicOnMenuItem, musicOffMenuItem, NULL ); ⑥ musicToggleMenuItem- setPosition( Director::getInstance()- convertToGL(Point(818,362))); //Ok按钮 autookMenuItem = MenuItemImage::create( "menu/ok-down.png", "menu/ok-up.png"); okMenuItem- setPosition(Director::getInstance()- convertToGL(Point(600,510))); Menu* mn = Menu::create(soundToggleMenuItem, musicToggleMenuItem,okMenuItem, NULL); ⑦ mn- setPosition(Point::ZERO); this- addChild(mn); return true; }
在上面代码第①是创建音效开的图片菜单项第②行是创建音效关的图片菜单项第③行代码是通过createWithCallback函数创建开关菜单项MenuItemToggle。类似的第④~⑥创建了背景音乐开关菜单项。第⑦行代码是通过上面创建的开关菜单项创建Menu对象。
更多精彩视频课程请关注智捷课堂Cocos课程http://v.51work6.com
欢迎加入Cocos2d-x技术讨论群257760386
《Cocos2d-x实战 C++卷》现已上线各大商店均已开售
京东http://item.jd.com/11584534.html
当当http://product.dangdang.com/23606265.html
互动出版网http://product.china-pub.com/3770734
《Cocos2d-x实战 C++卷》源码及样章下载地址
源码下载地址http://51work6.com/forum.php?mod=viewthread tid=1155 extra=page%3D1
样章下载地址http://51work6.com/forum.php?mod=viewthread tid=1157 extra=page%3D1
欢迎关注智捷iOS课堂微信公共平台
在场景编译窗口中可以鼠标右键选中之后移动鼠标就可以自由的浏览场景,并选择物体对其可以进行操作,按下Q\W\E\R四个键时可以画面中的将会进行变换,第一个图标可以进行拖动、第二个图标可以对物体进行位移,第三个图标可以对物体进行旋转,第四个图标可以对物体进行放大缩小。
关东升 国内著名iOS/Cocos技术作家,iOS技术顾问,Cocos最有价值专家(CVP),智捷课堂首席培训专家。担任51CTO社区iOS技术顾问。 著有多部移动开发畅销书。
相关文章
- C语言读取txt文件实例
- iSCSI块存储网络共享基础介绍与实例操作
- Mariadb单机多实例部署
- redis锁机制介绍与实例
- sql server递归子节点、父节点sql查询表结构的实例
- Spark入门实战系列–9.Spark图计算GraphX介绍及实例详解大数据
- Python实例:贪吃蛇游戏
- Linux 查看实例名称指南(linux查看实例名)
- Oracle实例重启步骤:快速而有效!(oracle重启实例)
- CI框架MySQL数据库删除实例介绍(ci mysql 删除)
- Redis集群添置新节点,构建更健壮的分布式环境(redis集群新增实例)
- jQueryAjax提交表单查询获得数据实例代码
- Javascript开发之三数组对象实例介绍
- C++多继承同名隐藏实例详细介绍
- PHP时间戳与日期之间转换的实例介绍
- android中选中菜单的显示跳转和隐式跳转的实例介绍
- AndroidThread介绍与实例
- JS随机漂浮广告代码具体实例
- Python中的闭包详细介绍和实例
- jQuery事件绑定和委托实例
- VisualC#类的定义及实现方法实例解析
- android双缓冲技术实例详解
- 在与SQLServer建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
- Java锁之阻塞锁介绍和代码实例