关闭

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

标签: cocos2d-x3.9教程自学手游
484人阅读 评论(0) 收藏 举报
分类:

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中


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12502次
    • 积分:220
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档