首先需要明确的是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相关推荐

  1. 菜单Menu和菜单项MenuItem

    一.程序的功能介绍 文件子菜单下面有新建,打开和退出子选项.视图下面有普通子选项. 二.程序分区讲解 (1)在shell窗口中添加菜单条(主菜单)--menu_Bar; 类型是菜单(Menu)样式是菜 ...

  2. cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)

    cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明) 1.问:什么是cocos2d-x? 是一套开放源代码,主要基于c,c++语言,针对windows,linux, ...

  3. cocos2d-x学习笔记15:cocos2d-x教程资源总结

    注:cocos2d可作为cocos2dx的参考,两者接口很相似. 名称:知易的<知易Cocos2D-iPhone开发教程> 官方地址:http://blog.sina.com.cn/s/a ...

  4. cocos2d-x学习笔记16:记录存储1:CCUserDefault

    cocos2d-x学习笔记16:记录存储1:CCUserDefault 一.简述 CCUserDefalt作为NSUserDefalt类的cocos2d-x实现版本,承担了cocos2d-x引擎的记录 ...

  5. cocos2d-x 学习笔记(2)cocos2d-x重要概念,项目结构及 CCDirector 导演控件

    cocos2d-x 学习笔记(2)cocos2d-x重要概念及项目结构 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色. 导演(CCDirector)在cocos2d-x引擎中, ...

  6. iOS:菜单控制器和菜单项:UIMenuController和UIMenuItem

    菜单控制器和菜单项:弹出自定义的菜单栏窗口 提示: 1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES 2. Menu所处的View必 ...

  7. java菜单项_java中菜单条和菜单项,详细解析

    在java作为一门非常重要的编程语言,在我们的日常使用中还是非常好用的,而且功能也是十分强大的.java中有很多的繁琐的基础知识,今天为大家介绍一下有关于菜单条和菜单项的内容,一起来看看吧. 首先说一 ...

  8. html 导航栏 选中状态,CSS导航菜单高亮选中菜单项

    我开发了一个CSS导航菜单,并为每个导航项我写了php.file.CSS导航菜单高亮选中菜单项 homepage.php My First Try Of CSS Navigation Bar /* B ...

  9. mfc编程 孙鑫_孙鑫MFC学习笔记6:菜单编程

    1.对菜单响应的顺序: 视类,文档类,框架类,应用程序类 2.消息的分类 3.CWnd继承自CCmdTarget类, 所以从CWnd派生出的类也可以接收WM_COMMAND消息 4.命令的消息路由 5 ...

最新文章

  1. 推荐系统笔记(常见架构)
  2. java 可用内存_总可用内存java
  3. 2021广西对口中职高考成绩查询,教育资讯:2021广西本科对口中职分数线公布时间 几号查分...
  4. 事务ACID理解复习
  5. mysql导出逗号_Mysql导出逗号分隔的csv文件
  6. VMware vSphere 7的主要新功能
  7. BayaiM__oracle切换归档模式步骤:
  8. 20200501:力扣185周赛上
  9. ubuntu查看安装软件的版本
  10. 计算机网络基础知识 - 物理层
  11. IDEA安装插件(在线/离线)
  12. 文件批量提取工具,从大量文件中批量提取指定文件的实现思路,文件批量复制
  13. 汽车java歌曲_开车必备100首歌曲 50首适合开车听的歌曲 2019车载歌曲 DJ流行
  14. web网站中常见攻击手法与原理
  15. [转] Photoshop教程8000例
  16. Linux下Chelsio T5调试方法
  17. MySQL 5.6.21下载安装之安装篇(二)
  18. Idea主菜单不见了(File,View等工具栏隐藏了)
  19. 魔兽怀旧服联盟服务器不稳定,魔兽世界怀旧服转服服务关闭最后一天,联盟部落新的对抗...
  20. 简单的分布式爬虫(下载小说)

热门文章

  1. @2021考生,研招网再次开通下载《准考证》功能,查分不愁啦
  2. SQL Server 建表时出现未指定的错误,怎么解决?
  3. 台达DOP系列触摸屏上传程序时提示“中止传输数据”怎样解决?
  4. 华三服务器双硬盘,H3C NaviData 5200 G2服务器配置raid1+raid5
  5. 视频教程-Java并发编程实战-Java
  6. JavaScript函数详细介绍
  7. MATLAB恢复编辑器窗口停靠
  8. 个性化实时音乐推荐系统-毕业设计
  9. 中国人口趋势(1990-2035)
  10. threejs加载3D模型