些菜单项让用户開始游戏、暂停\继续游戏、打开\关闭音乐或者是返回到上一个界面,比方以下两张图中用红色线框标记的菜单项

   

我们能够使用CCMenu和CCMenuItem实现上述的菜单功能,CCMenu继承自CCLayer。仅仅能加入CCMenuItem为子节点。一个CCMenuItem就能够表示一个菜单项。

CCMenuItem继承自CCNode。来看下它的继承结构

以下直接上代码

[java] view
plain
copy

  1. // 第一个菜单项:CCMenuItemFont
  2. // 设置文字大小
  3. [CCMenuItemFont setFontSize:50];
  4. CCMenuItemFont *item1 = [CCMenuItemFont itemFromString:@"文字菜单" block:^(id sender) {
  5. NSLog(@"点击了文字菜单");
  6. }];
  7. // 文字为黄色
  8. item1.color = ccc3(255, 255, 0);
  9. // 第二个菜单项:CCMenuItemToggle
  10. // 又一次设置字体和大小
  11. [CCMenuItemFont setFontName:@"Courier New"];
  12. [CCMenuItemFont setFontSize:40];
  13. // on为青色
  14. CCMenuItemFont *on = [CCMenuItemFont itemFromString:@"On"];
  15. on.color = ccc3(0, 255, 255);
  16. // off为红色
  17. CCMenuItemFont *off = [CCMenuItemFont itemFromString:@"Off"];
  18. off.color = ccc3(255, 0, 0);
  19. CCMenuItemToggle *item2 = [CCMenuItemToggle itemWithBlock:^(id sender) {
  20. NSLog(@"切换了开关状态");
  21. } items:on, off, nil];
  22. // 第三个菜单项:CCMenuItemSprite
  23. // 默认的精灵
  24. CCSprite *normal = [CCSprite spriteWithFile:@"lufy.png"];
  25. // 被按下时的精灵(红色)
  26. CCSprite *selected = [CCSprite spriteWithFile:@"lufy.png"];
  27. selected.color = ccRED;
  28. CCMenuItemSprite *item3 = [CCMenuItemSprite itemFromNormalSprite:normal selectedSprite:selected block:^(id sender) {
  29. NSLog(@"点击了图片button");
  30. }];
  31. // 按顺序加入菜单项到菜单中
  32. CCMenu *menu = [CCMenu menuWithItems:item1, item2, item3, nil];
  33. // 让菜单居中
  34. CGSize winSize = [CCDirector sharedDirector].winSize;
  35. menu.position = ccp(winSize.width * 0.5f, winSize.height * 0.5f);
  36. // 垂直方向排列菜单项,每一个菜单项之间有30的垂直间距
  37. [menu alignItemsVerticallyWithPadding:30];
  38. // 加入菜单到图层中
  39. [self addChild:menu];

默认的效果图

单击中间的青色的"On"后,变为了红色的off

长按以下的头像后,头像变为红色

其他CCMenuItem的使用方法都大同小异

原文地址:http://blog.csdn.net/q199109106q/article/details/8604273

感谢作者~!

cocos2D(八)---- CCMenu && CCMenuItem的更多相关文章

  1. 基于cocos2d开发的android小游戏——採花仙

    /*cocos 2d 已经成为了如今移动端游戏开发的强有力的工具,眼下主流游戏中多採用cocos 2d游戏引擎. 我也尝试了一下该引擎.我是用的是cocos2d-android,以后要移植到Cocos ...

  2. [Cocos2d-x For WP8]Layer 层

        层(CCLayer) 从概念上说,层就是场景里的背景. CCLayer同样是CCNode的子类,通常用addChild方法添加子节点.CCLayer对象定义了可描绘的区域,定义了描绘的规则.C ...

  3. cocos2d-x学习笔记

    转自:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 JNI:允许 ...

  4. COCOS2D-JS入门-web端项目部署

    下载cocos2d-js文件,建议上官网下载(外国官网或者中国官网都可以) 外国官网:http://cocos2d-x.org/download(选择最新版即可,我下载时为3.9版本,大概300多M) ...

  5. 【cocos2d-js官方文档】二十、moduleConfig.json

    概述 该配置文件相当于v2版本号中的jsloader.js. 改造的目的是为了使得配置纯粹化,同一时候也能比較好的支持cocos-console.cocos-utils甚至是用户自己定义脚本工具. 字 ...

  6. cocos2d-x 菜单

    菜单在游戏中是非常常见的控件之一.下面来分析下在cocos2dx中有那些菜单. 一共有六种菜单. CCMenu在创建时需要使用CCMenuItem来创建. CCMenu继承自CCLayer,是一个菜单 ...

  7. Pycharm下安装模块

    方法一:使用Pycharm的终端安装 一.网络爬虫 1.安装requests包 作用:简洁且简单的处理HTTP请求的第三方库 网址:https://pypi.org/project/requests/ ...

  8. 八、CCMenu和CCMenuItem

    游戏中经常会提供一些菜单项让用户开始游戏.暂停\继续游戏.打开\关闭音乐或者是返回到上一个界面,比如下面两张图中用红色线框标记的菜单项     我们可以使用CCMenu和CCMenuItem实现上述的 ...

  9. cocos2d在CCScrollView中嵌套CCMenu列表

    在cocos2d中,CCMenuItem经常被当做按钮使用.在有许多条目需要逐行显示,并且点击每个条目都触发对应的事件的需求下,最容易想到的是用CCScrollView嵌套CCMenu. 但默认情况下 ...

随机推荐

  1. hadoop format过程

    private static boolean format(Configuration conf, boolean isConfirmationNeeded ) throws IOException ...

  2. QT 多线程程序设计(也有不少例子)

    QT通过三种形式提供了对线程的支持.它们分别是,一.平台无关的线程类,二.线程安全的事件投递,三.跨线程的信号-槽连接.这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势.多线程编 ...

  3. 与众不同 windows phone (32) - Communication(通信)之任意源组播 ASM(Any Source Multicast)

    原文:与众不同 windows phone (32) - Communication(通信)之任意源组播 ASM(Any Source Multicast) [索引页][源码下载] 与众不同 wind ...

  4. 关于ubuntu下qt编译显示Cannot connect creator comm socket /tmp/qt_temp.xxx/stub-socket的解决的方法

    今天在ubuntu下安装了qtcreator,准备測试一下能否用.果然一測试就出问题了,简单编写后F5编译在gnome-terminal中出现 Cannot connect creator comm ...

  5. Androidclient推断server是否开启 HttpHostException解决方式

    Android推断服务器是否开启,试了非常多方法都不行(若server未开启会卡在HttpResponse那),有人说高版本号的Android程序不同意在主线程中訪问网络(主线程中能够读写网络流)有待 ...

  6. CountDownLatch和CyclicBarrier的区别(转)

    在网上看到很多人对于CountDownLatch和CyclicBarrier的区别简单理解为CountDownLatch是一次性的,而CyclicBarrier在调用reset之后还可以继续使用.那如 ...

  7. Python语言总结 4.2. 和字符串(str,unicode等)处理有关的函数

    4.2.7. 去除控制字符:removeCtlChr Python语言总结4.2. 和字符串(str,unicode等)处理有关的函数Sidebar     Prev | Up | Next4.2.7 ...

  8. freemarker自己定义标签(二)

    freemarker自己定义标签 1.自己定义标签 通过自己定义标签,写一个反复指定字符串 2.实现源代码 <html> <head> <meta http-equiv= ...

  9. stripslashes和addslashes的区别

    我们在向mysql写入数据时,比如: mysql_query(”update table set `title`=’kuhanzhu’s blog’”); 那就会出错.同asp时一样,数据库都会对单引 ...

  10. poj2378(树的dfs)

    题目链接:http://poj.org/problem?id=2378 题意:给一个树状图,有n个点.求出,去掉哪个点,使得剩下的每个连通子图中点的数量不超过n/2. 分析:num[u]表示以u为根节 ...