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

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

以下直接上代码
- // 第一个菜单项:CCMenuItemFont
- // 设置文字大小
- [CCMenuItemFont setFontSize:50];
- CCMenuItemFont *item1 = [CCMenuItemFont itemFromString:@"文字菜单" block:^(id sender) {
- NSLog(@"点击了文字菜单");
- }];
- // 文字为黄色
- item1.color = ccc3(255, 255, 0);
- // 第二个菜单项:CCMenuItemToggle
- // 又一次设置字体和大小
- [CCMenuItemFont setFontName:@"Courier New"];
- [CCMenuItemFont setFontSize:40];
- // on为青色
- CCMenuItemFont *on = [CCMenuItemFont itemFromString:@"On"];
- on.color = ccc3(0, 255, 255);
- // off为红色
- CCMenuItemFont *off = [CCMenuItemFont itemFromString:@"Off"];
- off.color = ccc3(255, 0, 0);
- CCMenuItemToggle *item2 = [CCMenuItemToggle itemWithBlock:^(id sender) {
- NSLog(@"切换了开关状态");
- } items:on, off, nil];
- // 第三个菜单项:CCMenuItemSprite
- // 默认的精灵
- CCSprite *normal = [CCSprite spriteWithFile:@"lufy.png"];
- // 被按下时的精灵(红色)
- CCSprite *selected = [CCSprite spriteWithFile:@"lufy.png"];
- selected.color = ccRED;
- CCMenuItemSprite *item3 = [CCMenuItemSprite itemFromNormalSprite:normal selectedSprite:selected block:^(id sender) {
- NSLog(@"点击了图片button");
- }];
- // 按顺序加入菜单项到菜单中
- CCMenu *menu = [CCMenu menuWithItems:item1, item2, item3, nil];
- // 让菜单居中
- CGSize winSize = [CCDirector sharedDirector].winSize;
- menu.position = ccp(winSize.width * 0.5f, winSize.height * 0.5f);
- // 垂直方向排列菜单项,每一个菜单项之间有30的垂直间距
- [menu alignItemsVerticallyWithPadding:30];
- // 加入菜单到图层中
- [self addChild:menu];
默认的效果图

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

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

其他CCMenuItem的使用方法都大同小异
原文地址:http://blog.csdn.net/q199109106q/article/details/8604273
感谢作者~!
cocos2D(八)---- CCMenu && CCMenuItem的更多相关文章
- 基于cocos2d开发的android小游戏——採花仙
/*cocos 2d 已经成为了如今移动端游戏开发的强有力的工具,眼下主流游戏中多採用cocos 2d游戏引擎. 我也尝试了一下该引擎.我是用的是cocos2d-android,以后要移植到Cocos ...
- [Cocos2d-x For WP8]Layer 层
层(CCLayer) 从概念上说,层就是场景里的背景. CCLayer同样是CCNode的子类,通常用addChild方法添加子节点.CCLayer对象定义了可描绘的区域,定义了描绘的规则.C ...
- cocos2d-x学习笔记
转自:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 JNI:允许 ...
- COCOS2D-JS入门-web端项目部署
下载cocos2d-js文件,建议上官网下载(外国官网或者中国官网都可以) 外国官网:http://cocos2d-x.org/download(选择最新版即可,我下载时为3.9版本,大概300多M) ...
- 【cocos2d-js官方文档】二十、moduleConfig.json
概述 该配置文件相当于v2版本号中的jsloader.js. 改造的目的是为了使得配置纯粹化,同一时候也能比較好的支持cocos-console.cocos-utils甚至是用户自己定义脚本工具. 字 ...
- cocos2d-x 菜单
菜单在游戏中是非常常见的控件之一.下面来分析下在cocos2dx中有那些菜单. 一共有六种菜单. CCMenu在创建时需要使用CCMenuItem来创建. CCMenu继承自CCLayer,是一个菜单 ...
- Pycharm下安装模块
方法一:使用Pycharm的终端安装 一.网络爬虫 1.安装requests包 作用:简洁且简单的处理HTTP请求的第三方库 网址:https://pypi.org/project/requests/ ...
- 八、CCMenu和CCMenuItem
游戏中经常会提供一些菜单项让用户开始游戏.暂停\继续游戏.打开\关闭音乐或者是返回到上一个界面,比如下面两张图中用红色线框标记的菜单项 我们可以使用CCMenu和CCMenuItem实现上述的 ...
- cocos2d在CCScrollView中嵌套CCMenu列表
在cocos2d中,CCMenuItem经常被当做按钮使用.在有许多条目需要逐行显示,并且点击每个条目都触发对应的事件的需求下,最容易想到的是用CCScrollView嵌套CCMenu. 但默认情况下 ...
随机推荐
- python 时间戳 datetime string 转换
import datetime import time **datetime转时间戳** In [1]: now = datetime.datetime.now() In [2]: time.mkti ...
- oc深坑測试题及其答案
一.选择题(共80题,每题1分) 1. 不会立马使引用计数器改变的是: 答案:(C) A.release B.alloc C.autorelease D.retain 2. 在OC中类的接口声 ...
- Extjs学习----------动态载入js文件(减轻浏览器的压力)
动态载入js文件能够减轻浏览器的压力,本例使用了Ext.window.Window组件,该组件的学习地址:http://blog.csdn.net/z1137730824/article/detail ...
- 开源搜索引擎评估:lucene sphinx elasticsearch
开源搜索引擎评估:lucene sphinx elasticsearch 开源搜索引擎程序有3大类 lucene系,java开发,包括solr和elasticsearch sphinx,c++开发,简 ...
- java学习笔记11--Annotation
java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...
- WPF 设置WebBrowser控件不弹脚本错误提示框
using System.Reflection; using System.Windows; using System.Windows.Controls; using System.Windows.N ...
- 跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)
跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块) 上面设计好了一个模块的主界面,以下通过菜单命令的运行来把这个模块增加到主界面其中. 在MainModule. ...
- Android中使用JNI获得APK签名的哈希值
原地址:http://blog.csdn.net/i5suoi/article/details/19036975 最近在研究android应用中的安全问题,貌似只有将核心代码写到JNI底层才是最安全的 ...
- Spring中继承配置的注入方法
(1)两个java类.一个父类一个字类 package com.lc.inherit; /* * 这里是父类 */ public class Student { protected String na ...
- 在gem5的full system下运行 alpha编译的测试程序 running gem5 on ubuntu in full system mode in alpha
背景 先需要在full system下运行gem5,通过网上查找资料以及向别人请教,终于成功运行,网上大多是关于alpha指令集的,且都是英文的,为了方便大家学习,现在总结一下,希望对大家有所帮助. ...