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

   

我们能够使用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. Android Studio中如何打JAR包

    Android Studio中对于library类型的Moudle,默认打出来的是AAR包, 但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包, 可以通过在 ...

  2. How do I create a zip file?(转)

    Creating a zip file is a task that can easily be accomplished by using the classes ZipOutputStream a ...

  3. Java回调理解 (step by step)

    在网上搜索了很多篇关于java回调函数的文章,自己也来试了一下写了这篇博客,可能有些地方理解不到位,烦请各位大大指正. 在计算机程序设计中.回调函数.或简称回调.是指通过函数參数传递到其他代码的,某一 ...

  4. Android短信监听(二)——利用ContentObserver实现短信监听

    MainActivity例如以下: package cc.testsmslistener; import cc.testsmslistener.SMSContentObserver.MessageLi ...

  5. Lambda高手之路第三部分

    转http://www.cnblogs.com/lazycoding/archive/2013/01/06/2847587.html 背后的秘密-MSIL 通过著名的LINQPad,我们可以更深入的查 ...

  6. 当Scheduler拿不到url的 时候,不能立即退出

    在webmagic的多线程抓取中有一个比较麻烦的问题:当Scheduler拿不到url的 时候,不能立即退出,需要等到没抓完的线程都运行完毕,没有新url产生时,才能退出.之前使用Thread.sle ...

  7. 破解phpjm.net加密,解密程序,全部公布

    原文:破解phpjm.net加密,解密程序,全部公布 2014-05-23更新: 很久没人找我解密了,看来这加密已过时,现公布我这边最新的解密工具. 若有解不出的可联系qq: 267014855 (不 ...

  8. 访何红辉:谈谈Android源码中的设计模式

    最近Android 6.0版本的源代码开放下载,刚好分析Android源码的技术书籍<Android源码设计模式解析与实战>上市,我们邀请到它的作者何红辉,来谈谈Android源码中的设计 ...

  9. select下拉菜单反显不可改动,且submit能够提交数据

    首先通过后台funcA()将下拉菜单反显不可改动的数据response到disable.jsp页面,disable.jsp: <script> var data1=${result.obj ...

  10. 修改emlog后台登录路径的方法(转)

    emlog后台登录地址的目录名称默认为admin,并且官方没有提供自定义后台登录入口名字的功能,这多少让我们觉得有些不安全,毕竟暴露一个网站的后台不是一件安全的事,今天就给您说下修改方法,增加一下网站 ...