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];
认的效果



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


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



他CcmenuItem的用法都大同小异


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

感谢作者~!

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...