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

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

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

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

下面直接上代码

[java] view plain copy
  1. //第一个菜单项:CCMenuItemFont
  2. //设置文字大小
  3. [CCMenuItemFontsetFontSize:50];
  4. CCMenuItemFont*item1=[CCMenuItemFontitemFromString:@"文字菜单"block:^(idsender){
  5. NSLog(@"点击了文字菜单");
  6. }];
  7. //文字为黄色
  8. item1.color=ccc3(255,0);
  9. //第二个菜单项:CCMenuItemToggle
  10. //重新设置字体和大小
  11. [CCMenuItemFontsetFontName:@"CourierNew"];
  12. 40];
  13. //on为青色
  14. CCMenuItemFont*on=[CCMenuItemFontitemFromString:@"On"];
  15. on.color=ccc3(0,0); background-color:inherit">255);
  16. //off为红色
  17. CCMenuItemFont*off=[CCMenuItemFontitemFromString:@"Off"];
  18. off.color=ccc3(0);
  19. CCMenuItemToggle*item2=[CCMenuItemToggleitemWithBlock:^(idsender){
  20. NSLog(@"切换了开关状态");
  21. }items:on,off,nil];
  22. //第三个菜单项:CCMenuItemSprite
  23. //默认的精灵
  24. CCSprite*normal=[CCSpritespriteWithFile:@"lufy.png"];
  25. //被按下时的精灵(红色)
  26. CCSprite*selected=[CCSpritespriteWithFile:@"lufy.png"];
  27. selected.color=ccRED;
  28. CCMenuItemSprite*item3=[CCMenuItemSpriteitemFromNormalSprite:normalselectedSprite:selectedblock:^(idsender){
  29. NSLog(@"点击了图片按钮");
  30. //按顺序添加菜单项到菜单
  31. CCMenu*menu=[CCMenumenuWithItems:item1,item2,item3,nil];
  32. //让菜单居中
  33. CGSizewinSize=[CCDirectorsharedDirector].winSize;
  34. menu.position=ccp(winSize.width*0.5f,winSize.height*0.5f);
  35. //垂直方向排列菜单项,每个菜单项之间有30的垂直间距
  36. [menualignItemsVerticallyWithPadding:30];
  37. //添加菜单到图层中
  38. [selfaddChild:menu];
默认的效果

@H_246_301@

@H_246_301@

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

@H_246_301@

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

@H_246_301@

@H_246_301@

他CCMenuItem的用法都大同小异

@H_246_301@

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

感谢作者~!

相关文章

操作步骤 1、创建cocos2d-x工程 2、新建 Scene1.cpp Scene1.h Scene1.h代码 #ifndef __SCENE1_H__#defi...
开发环境:OS(WINDOWS 8.1 X64 企业版) cocos2d-x 2.2.1 vs2010 想给vs安装上cocos的模版,执行Install...
把创建项目做成一个批处理,当创建项目时可以省时省力很多。 操作步骤 1、在 E:cocos2d-x-2.2.1toolspr...
https://www.cnblogs.com/JiaoQing/p/3906780.html 四个响应函数 1 EventListenerPhysicsContact* evC...
转载于 http://www.cnblogs.com/kenkofox/p/3926797.html 熟悉js的dom事件或者flash事件的,基本都能立...
ScrollView(滚动容器)加载大量item时会导致游戏界面的卡顿,严重时整个界面会出现卡死的情况。最近项...