Cocos2dx 菜单及菜单项笔记

------------------------------ 菜单 -----------------------------
1. CCMenu 菜单层
cocos2dx 中最基本的菜单层。功能是实现对菜单项的选择。以及对菜单
的排列。
方法介绍:
1) 菜单项排序方法.
alignItemsInColumns(cols, cols, cols, NULL)
根据提供的每一行的列数对菜单项进行排序。注意,这里的列数之
和,必须等于菜单中,所有菜单项总数。间隔为 5px

alignItemsInRows(rows, rows, rows, NULL)
根据提供的每一列的行数,对菜单项进行排序。总数也必须等于菜
单中,菜单项的总和。间隔为 5px

alignItemsVerticallyWithPadding(padding)
padding:上下两个菜单项之间的间隔。单列垂直排序

alignItemsVertically()。
按默认的间隔对菜单项进行垂直单列排序。内部调用上面的方法。

alignItemsHorizontallyWithPadding(float padding)
按指定的间隔,水平方向排序。

alignItemsHorizontally()
按默认的间隔,水平方向排序。

说明:CCMenu 在进行单列或单行排序时,都按照锚点(0.5, 0.5)
的方式设置菜单项的位置。菜单项在CCMenu中的位置也按照,以CCMenu
为中心的方式排列。例如。有两个菜单项,经过调用垂直排列方法后,
菜单项的位置分别一个在菜单的坐标上面,一个在菜单的坐标下面。

2) 菜单项的选择
itemForTouch
该方法用来判断点击在哪个菜单项上

3) 触摸控制
a) 触摸优先级的设置
setTouchPriority(int priority)
该方法继承自CCLayer。 这种改变触摸优先级的方法,效率非
常低,而且容易出BUG。因为它在更改优先级的处理时,是先将当前
CCTouchHandler从触摸分配器CCTouchDispatcher中移除,接着又重
新创建一个新的CCTouchHandler对象,并将其加入到分配器中来。

setHandlerPriority(int priority) ****
CCMenu自己的方法,该方法功能同上,更改当前菜单的触摸优
先级。如果需要更改触摸优先级的话,推荐使用该方法。

b) 触摸开关
setEnabled(bool)
设置是否响应触摸。注意:该方法不会将触摸层移除,只是设
置为不响应触摸事件仅此而已。

setTouchEnabled(bool)
父类的方法,该方法可以将菜单的CCTouchHandler从触摸分配
器中添加或移除。

4) CCMenu 会忽略 setTouchMode方法的设置。因为CCMenu只支持单点触
摸。

------------------------------ 菜单项 ---------------------------
1.CCMenuItem 
菜单项的祖先类。该类定义了一个菜单项必要的属性和方法、以及
菜单项的响应事件。但是没有处理对菜单在各种状态下的状态呈现。这些个
性化的呈现都由继承它的子类去实现。
例如 精灵菜单项,实现了在不同状态显示不同的精灵。


2. CCMenuItemSprite
节点菜单项。该菜单项的功能非常灵活。使用时只需要给每个状态下的
节点设置大小就可以了。它允许你在各种状态下的节点上添加任何其它的对
象和处理。
例如:在个状态下的节点上分别挂三个精灵,并设置每个节点的大小为
精灵的大小,这样做,那么就和CCMenuItemIamge一样了。


3. CCMenuItemIamge
精灵菜单项。菜单项继承CCMenuItemSprite.但是它最主要的功能就是将
父类每种状态下的节点固定为精灵实例。


6. CCMenuItemLabel
字符串菜单项。 接受一个实现了该 CCLabelProtocol协议的对象,作为
菜单项的实体,并提供了设置字符串的方法,以及按钮在Disable状态下的
RGB值。
主要方法:
a)setString(const char* pzText)
设置菜单项显示的字符串

b)setDisabledColor(const ccColor3B& var)
设置菜单项不能操作状态的下的Rgb值

C)CCMenuItemLabel::create(CCNode *label)
用一个CCLabelTTF* | CCLabelAtlas* 等等继承CCLabelProtocol
类实例的指针来创建一个字符串类的菜单项。

7. CCMenuItemAtlasFont
字符映射类的菜单项。继承CCMenuItemLabel。原理同CCMenuItemIamge
类继承CCMenuItemSprite。内部通过创建一个CCLabelAtlas对象来创建一个
CCMenuItemLabel 菜单项。


8. CCMenuItemFont
继承CCMenuItemLabel。同CCMenuItemAtlasFont一样。该类对象通过创
建CCLabelTTF对象创建菜单项。更改菜单项的字符串,以及字体名称、字体
大小等同操作CCLabelTTF一样。


9.CCMenuItemToggle ***
多选菜单项。继承CCMenuItem。该类的特点是可以接受若干个菜单项,
并在菜单项触发后由数组中下一个菜单项替换掉当前菜单项,并循环替换。
利用该特效可以实现Windows下面的复选框的效果。可以通过各个菜单项在
CCMenuItemToggle 内的索引来映射。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值