菜单Menu是专门用来承载菜单按钮的Layer图层,图层中的子节点只能够是菜单项MenuItem或其子类。通常先创建菜单项MenuItem,然后使用一个或多个菜单项生成菜单Menu,最后把Menu加入当前Layer图层。

如果直接在层中添加MenuItem也可以正常显示,但是无法响应回调函数,因为Menu是继承至Layer,也就继承了触摸的相关事件,而MenuItem只是从Node继承而来,并不响应触摸,因此无法调用回调函数。

由于CCMenu的父类为Layer,所以锚点为(0,0),且无法设置锚点。Menu的默认原点坐标为屏幕正中心(winSize.width/2, winSize.height/2)。

而对于MenuItem是添加在Menu层中的,所以MenuItem的位置是相对于Menu层的偏移位置。MenuItem相对于Menu的偏移量默认为(0,0),且菜单项的锚点默认为(0.5,0.5)。

值得注意的是:Menu包含了多个子菜单项,每个子菜单项的位置都不一样,如果定义了Menu的位置,那它作为父节点会影响到所有的子菜单项的位置,所以一般我们都是吧Menu的位置设置在PointZero,然后设置MenuItem的位置(也就是相对父节点的偏移量)来定位整个菜单。

关于菜单项:

MenuItem继承自Node,所以它的子类菜单项都可以使用Node的相关操作。

MenuItem是所有菜单项的父类,建议不要直接使用该类,因为它并不包含具体显示的功能。

作为其它菜单项的父类,主要提供了一下三个功能:

(1)提供了基本按钮的状态:正常、选中、禁用。

(2)为按钮实现了基本的回调函数机制。当玩家点积按钮后,就会调用执行相应的回调函数。

(3)触碰菜单项,附有自动放大效果。

菜单项的子类可以分成三类,总共六个:

(1)文字菜单项:MenuItemLabel、MenuItemAtlasFont、MenuItemFont;

(2)图片菜单项:MenuItemSprite、MenuItemImage;

(3)切换菜单项:MenuItemToggle。

而关于各个菜单项之前的区别这里因为内容过多不再赘述,大家可以去查看他的源码和官方的文档获取相关知识,源码是最好的学习资料。

转载于:https://www.cnblogs.com/wangtingyi/p/4647516.html

cocos2dx中菜单menu 和 menuItem相关推荐

  1. html5 动态 menuitem,利用HTML 5中的Menu和Menuitem元素快速创建菜单

    译文:HTML 5中Menu和Menuitem的元素介绍 译者:dwqs 今天向你介绍HTML 5中的两个元素:Menu和Menuitem,这两个元素是W3C交互元素中的一部分.现在Web的演变已经不 ...

  2. 解决android4.0系统中菜单(Menu)添加Icon无效问题

    在Android4.0系统中,创建菜单Menu,通过setIcon方法给菜单添加图标是无效的,图标没有显出来,2.3系统中是可以显示出来的.这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 Me ...

  3. cocos2d-x 中菜单类

    菜单相关类包含:菜单类和菜单项类,菜单类图,从类图可见Menu类继承于Layer. 菜单项类图,从图中可见所有的菜单项都是从BaseMenuItem继承而来的,BaseMenuItem是抽象类,具体使 ...

  4. EasyUI中菜单Menu的简单使用

    场景 效果 菜单项 菜单项(menu item)代表一个显示在菜单中的单独的项目.它包含下列属性: 名称 类型 描述 默认值 id string 菜单项(menu item)的 id 属性.   te ...

  5. cocos2dx学习笔记之菜单Menu和菜单项MenuItem

    首先需要明确的是cocos2d-x 3.x版本不推荐使用菜单类Menu了,因为菜单的功能可以用Button,Sprite或者ImageView等经常使用的控件替代. 回想一下个人经历的实际项目,确实没 ...

  6. Cocos2d-X中实现菜单特效

    Cocos2d-X中能够讲菜单和动作结合起来使用实现菜单特效 程序实例1:使用菜单和动作的组合实现菜单特效<一> #include "MenuItem.h"CCScen ...

  7. Android菜单详解——理解android中的Menu

    前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...

  8. Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane),TextArea右键菜单 组件使用案例

    文章目录 1.. Java弹出菜单,为JTextArea添加了右键弹出式菜单 2.:下拉式菜单的创建步骤: 3:弹出式菜单的创建步骤: 4:选项卡窗体: 菜单是GUI中最常用的组件,菜单不是Compo ...

  9. Android记录23-关于actionbar中overflow menu(溢出菜单)中的一些问题

    Android记录23-关于actionbar中overflow menu(溢出菜单)中的一些问题 前言 本篇博客记录一下小巫在使用actionbar的时候遇到关于溢出菜单的一些问题: 什么是Over ...

最新文章

  1. 热传的职场异性相处PPT!网友评:你倒是给我分配个女同事啊!
  2. HPU暑期第五次积分赛 - G-迷宫(BFS+最短路径)
  3. 程序猿眼里的高并发架构
  4. LiveVideoStackCon 2018公布优秀出品人与讲师
  5. 【转】Dicom文件解析!!!!!!
  6. linux查看 mysql 登陆 失败_Linux安装完mysql后提示错误无法登陆mysql怎么办?
  7. 计算机专业简述,简述计算机专业毕业论文完整版.doc
  8. java分割txt文件
  9. 免校准的电量计量芯片_请问电能计量芯片CS5463增益如何校准?
  10. mysql 告警日志_错误日志监控报警脚本
  11. (附源码)php柘城县农产品销售网站 毕业设计 020832
  12. DIY表情包制作软件
  13. Gwallet小百科 | 一文透析腾讯区块链技术
  14. Jenkins 凭据密码忘记获取凭据密码
  15. 切换到/etc/ppp/ipup文件,写出操作命令过程,并显示详细过程,和推迟30秒关机命令
  16. 从violate到ConcurrentHashMap,我通过引导面试官,过了多场技术面试
  17. SOCKS5实现代理服务器(C++)
  18. 【亚马逊运营】有关滞销库存的处理方法之站内清库存法!
  19. 电大计算机科学与技术课程,大学计算机科学与技术专业(本科)专业课程设置及教学管理...
  20. BurpSuite学习:在火狐浏览器使用foxyproxy添加代理127.0.0.1后无法正常上网

热门文章

  1. OpenCv颜色直方图
  2. 烤烟发病叶片高光谱特征分析
  3. snipaste安装和使用_snipaste替代品 amp; linux截图解决方案-截图、贴图工具Flameshot...
  4. 透明色的rgb值是多少_一文掌握PPT主题色原理及使用技巧
  5. 学习bert过程中的思考,少走弯路
  6. java jquery怎么取值_jquery 取值
  7. java多端登录_【Java】一个登录功能也能玩出这么多花样?sa-token带你轻松搞定多地登录、单地登录、同端互斥登录...
  8. c#数组赋初值_【自学C#】|| 笔记 13 数组
  9. Android Binder通信数据结构介绍
  10. PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码