cocos2D(八)---- CCMenu && CCMenuItem

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

   

我们能够使用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

感谢作者~!

时间: 2024-08-26 22:38:44

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

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

/*cocos 2d 已经成为了如今移动端游戏开发的强有力的工具,眼下主流游戏中多採用cocos 2d游戏引擎. 我也尝试了一下该引擎.我是用的是cocos2d-android,以后要移植到Cocos2d-x上.废话不多说,代码例如以下.*/ watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFwcHlub29t/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/South

Cocos2D-Android-1之源码详解:7.CocosNodeTest

package org.cocos2d.tests; import org.cocos2d.actions.UpdateCallback; import org.cocos2d.actions.base.CCAction; import org.cocos2d.actions.base.CCRepeatForever; import org.cocos2d.actions.camera.CCOrbitCamera; import org.cocos2d.actions.ease.CCEaseIn

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

概述 该配置文件相当于v2版本中的jsloader.js.改造的目的是为了使得配置纯粹化,同时也能比较好的支持cocos-console.cocos-utils甚至是用户自定义脚本工具. 字段说明 module 配置各个模块的js列表.key名即为模块名称.这些key名将会在project.json的modules字段中使用.倘若不清楚project.json里面究竟有哪些模块可以配置,就可以直接查看该文件. 每个模块的配置对象是一个数组,数组项分两种,一种是模块名,一种是js路径. 例如: "

Cocos2D-Android-1之源码详解:8.DrawPrimitivesTest

package org.cocos2d.tests; import javax.microedition.khronos.opengles.GL10; import org.cocos2d.actions.interval.CCRotateBy; import org.cocos2d.config.ccMacros; import org.cocos2d.layers.CCLayer; import org.cocos2d.layers.CCScene; import org.cocos2d.m

Cocos2D-Android-1之源码详解:4.AtlasTest

package org.cocos2d.tests; import javax.microedition.khronos.opengles.GL10; import org.cocos2d.actions.UpdateCallback; import org.cocos2d.actions.base.CCRepeatForever; import org.cocos2d.actions.interval.CCFadeIn; import org.cocos2d.actions.interval.

Cocos2D-Android-1之源码详解:16.ParticleTest

package org.cocos2d.tests; import org.cocos2d.actions.UpdateCallback; import org.cocos2d.actions.base.CCRepeatForever; import org.cocos2d.actions.interval.CCIntervalAction; import org.cocos2d.actions.interval.CCMoveBy; import org.cocos2d.actions.inte

Cocos2D-Android-1之源码详解:22.TileMapTest

package org.cocos2d.tests; import java.util.HashMap; import javax.microedition.khronos.opengles.GL10; import org.cocos2d.actions.base.CCRepeatForever; import org.cocos2d.actions.instant.CCCallFuncN; import org.cocos2d.actions.interval.CCFadeIn; impor

Cocos2D-Android-1之源码详解:3.ActionsTest

package org.cocos2d.tests; import java.io.IOException; import java.io.InputStream; import javax.microedition.khronos.opengles.GL10; import org.cocos2d.actions.base.CCAction; import org.cocos2d.actions.base.CCFollow; import org.cocos2d.actions.base.CC

Cocos2D-Android-1之源码详解:2.ActionManagerTest

//现在我们开始注释,他的第一个activity package org.cocos2d.tests; import org.cocos2d.actions.CCActionManager; import org.cocos2d.actions.base.CCAction; import org.cocos2d.actions.instant.CCCallFunc; import org.cocos2d.actions.instant.CCCallFuncN; import org.cocos2