关闭

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

标签: cocos2d-x3.9教程自学手游
672人阅读 评论(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
查看评论

Cocos2d-X中Menu的综合运用

今天将以前写的代码和项目集成到了一个菜单中,可以通过菜单切换到以前做的项目 程序的工程目录 主要代码分析: LessonMenu.h中实现创建菜单,遍历菜单通过菜单切换到各个项目 #ifndef _LessonMenu_H_ #define _LessonMenu_H_ #in...
  • u010105970
  • u010105970
  • 2014-10-15 12:24
  • 1411

Cocos2d-x 3.9教程:8. Cocos2d-x中的4种布局

Cocos2d-x 3.9教程 8. Cocos2d-x中的4种布局 Cocos2d-x中一共有4种布局:ABSOLUTE(绝对布局)、HORIZONTAL(水平布局)、VERTICAL(垂直布局)和RELATIVE(相对布局)。 注意,只有在绝对布局内部,组件使用setPo...
  • tiancao222
  • tiancao222
  • 2016-04-09 12:34
  • 3685

cocos2d-x3.9利用cocos引擎一键打包Android平台APK

曾经用cocos2d-x开发手游: 进入cmd黑框框输入创建工程语句: cocos new name -p com.game.package -l cpp -d G:\cocosProject 进入VS编译要等二十分钟,还会生成总共4G大小的文件,超占空间 编译成功后要将工程导入eclipse 要...
  • u014508743
  • u014508743
  • 2016-03-14 11:02
  • 876

Cocos2d-x 3.x 编译Android方法

http://tianyiyan.com/cocos2d-x-3-x-%E7%BC%96%E8%AF%91android%E6%96%B9%E6%B3%95/ 以下代码确保在 cocos2d-x 3.1.1版本 有效. 首先确保Android开发环境以及Cocos2d-x 环境已经配...
  • leansmall
  • leansmall
  • 2015-08-18 23:03
  • 896

cocos2dx学习之路----第一篇(cocos2dx版本3.9开发环境的搭建及HelloWold的见面)

这里我将开始写曾经学过的cocos2dx的表层教程。 这开篇可能我要多说几句,希望不要嫌弃哈~毕竟每一个引擎背后都有一些不为人知的故事,很值得缅怀。
  • qq_30501909
  • qq_30501909
  • 2016-02-17 17:20
  • 1331

cocos2d-x基本知识点(8):菜单项

CCMenuItem是一个基类,它的子类可以加入CCMenu中
  • u010002704
  • u010002704
  • 2014-09-15 12:22
  • 443

Cocos2d-x 3.9教程:3.音乐的播放

1. 音乐的播放 在游戏中,一般音乐分两大类型,一种是长时间播放的背景音乐,一种是根据游戏事件播放的短时间音乐(音效)。 在Cocos2d-X中,使用SimpleAudioEngine类来播放两种类型的声音: 1.1. 播放背景音乐 CocosDenshion::SimpleAu...
  • tiancao222
  • tiancao222
  • 2016-04-03 14:26
  • 622

Cocos2d-x 3.9教程:1.场景的切换

Cocos2d-x 3.9教程 1. 场景的切换 1.1. 简单切换 模仿工程自带的HelloWorld场景(实际上是一个Layer),创建另一个自定义的场景(其实也是一个Layer),如MyTestScene1。参照原有Scene,实现createScene()、...
  • tiancao222
  • tiancao222
  • 2016-04-03 14:19
  • 622

Cocos2d-x 的3D游戏制作官方教程(中文翻译)

Cocos2d-X 从版本3开始,已经将3D一些特性添加到了Cocos2d-x里面。因为3D游戏是一个巨大的市场,所以,为了方便您进行3D游戏的开发,Cocos2d-x向您提供了所有你开发3D游戏时所需要的特性。或许对你而言,3D开发是一个新的领域,这里有一些软件、工具是你所需要了解了。
  • cyh24
  • cyh24
  • 2015-05-13 23:02
  • 5947

quick-cocos2d-x游戏开发【5】——创建菜单

菜单也是游戏中不可缺少的元素之一,quick中对于menuItem的封装有两种,一个是图片菜单,一个是文字菜单。 一、图片菜单ui.newImageMenuItem(params) 可用参数: image: 正常状态的按钮图像imageSelected: 按钮按下时的图像(可选)imageD...
  • w337198302
  • w337198302
  • 2014-08-14 09:59
  • 4248
    个人资料
    • 访问:16581次
    • 积分:266
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档