Cocos2d-x 3.9教程: 2.菜单项的基本使用

Cocos2d-x 3.9教程

2. 菜单项的基本使用:

在Cocos2d-x中,菜单(Menu)实际上是一个层(Layer),它由内部的多个菜单条目构成的。菜单的条目种类有:

1.1. MenuItemLabel

标签条目,先创建标签(Lable),再用它创建标签条目:

auto label = Label::createWithTTF("Hello World","fonts/Marker Felt.ttf", 24);//创建label

MenuItemLabel *labelItem =MenuItemLabel::create(label);//根据label创建MenuItem

1.2. MenuItemSprite

精灵条目,先创建两个精灵(Sprite),再通过它们(普通状态和选择状态的Sprite)创建精灵条目:

Sprite *spritenormal = Sprite::create("CloseNormal.png");//普通状态Sprite

Sprite *spriteselected = Sprite::create("CloseSelected.png");//选中状态Sprite

MenuItemSprite *menuitemSprite =MenuItemSprite::create(spritenormal, spriteselected,CC_CALLBACK_1(HelloWorld::menuCloseCallback,this));//根据他们创建MenuItem

1.3. MenuItemImage

MenuItemImage是MenuItemSprite的子类,在创建时根据两幅图片来创建MenuItemImage,其余用法跟MenuItemSprite类似。

1.4. MenuItemToggle

轮换按钮类型菜单项,它可以容纳任意类型的菜单项(MenuItem),每按下一次菜单项后,会切换到下一个菜单项,循环往复。比如我们可以用于音乐的开和关。

使用方法是先创建其他类型的MenuItem对象,再添加到MenuItemToggle中,最后将其放入菜单中:

MenuItemToggle *menuToggle =

MenuItemToggle::createWithCallback(CC_CALLBACK_1(HelloWorld::emptyMenuCallback,

this), closeItem, labelItem, closeItem2,NULL);

注意,MenuItemToggle本身绑定了一个回调函数,在点击当前菜单项时,执行绑定的这个回调函数,而各菜单项自己绑定的回调函数将不起作用了!

1.5. 菜单项组合生成菜单

所有类型的MenuItem创建完后,需要添加至Menu中,才能当做菜单使用:

auto menu = Menu::create(closeItem, labelItem, closeItem2, NULL);//将所有的菜单项放入菜单中

menu->alignItemsVertically();//设置菜单项的排列方式(垂直排列)

menu->setPosition(Vec2(visibleSize.width / 2, visibleSize.height/2));//设置菜单的位置

this->addChild(menu, 1);//将菜单添加进Layer中


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值