zoukankan      html  css  js  c++  java
  • cocos2dx中菜单menu 和 menuItem

    菜单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。

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

  • 相关阅读:
    从路径中拆分出文件名和后缀
    屏幕中判断必输
    根据tcode查找增强的程序
    IDOC练习(二、接收端配置)
    ORACLE 绑定变量用法总结
    Oracle数据类型之number
    总结:整理 oracle异常错误处理
    ISNUMBER函数的创建以及函数创建思路。
    oracle 绑定变量 bind variable(2)
    oracle 绑定变量(bind variable)(1)
  • 原文地址:https://www.cnblogs.com/wangtingyi/p/4647516.html
Copyright © 2011-2022 走看看