游戏中经常会提供一些菜单项让用户开始游戏、暂停\继续游戏、打开\关闭音乐或者是返回到上一个界面,比如下面两张图中用红色线框标记的菜单项
我们可以使用CCMenu和CCMenuItem实现上述的菜单功能,CCMenu继承自CCLayer,只能添加CCMenuItem为子节点。一个CCMenuItem就可以表示一个菜单项。
CCMenuItem继承自CCNode,来看下它的继承结构
下面直接上代码
- //第一个菜单项:CCMenuItemFont
- //设置文字大小
- [CCMenuItemFontsetFontSize:50];
- CCMenuItemFont*item1=[CCMenuItemFontitemFromString:@"文字菜单"block:^(idsender){
- NSLog(@"点击了文字菜单");
- }];
- //文字为黄色
- item1.color=ccc3(255,0);
- //第二个菜单项:CCMenuItemToggle
- //重新设置字体和大小
- [CCMenuItemFontsetFontName:@"CourierNew"];
- 40];
- //on为青色
- CCMenuItemFont*on=[CCMenuItemFontitemFromString:@"On"];
- on.color=ccc3(0,0); background-color:inherit">255);
- //off为红色
- CCMenuItemFont*off=[CCMenuItemFontitemFromString:@"Off"];
- off.color=ccc3(0);
- CCMenuItemToggle*item2=[CCMenuItemToggleitemWithBlock:^(idsender){
- NSLog(@"切换了开关状态");
- }items:on,off,nil];
- //第三个菜单项:CCMenuItemSprite
- //默认的精灵
- CCSprite*normal=[CCSpritespriteWithFile:@"lufy.png"];
- //被按下时的精灵(红色)
- CCSprite*selected=[CCSpritespriteWithFile:@"lufy.png"];
- selected.color=ccRED;
- CCMenuItemSprite*item3=[CCMenuItemSpriteitemFromNormalSprite:normalselectedSprite:selectedblock:^(idsender){
- NSLog(@"点击了图片按钮");
- //按顺序添加菜单项到菜单中
- CCMenu*menu=[CCMenumenuWithItems:item1,item2,item3,nil];
- //让菜单居中
- CGSizewinSize=[CCDirectorsharedDirector].winSize;
- menu.position=ccp(winSize.width*0.5f,winSize.height*0.5f);
- //垂直方向排列菜单项,每个菜单项之间有30的垂直间距
- [menualignItemsVerticallyWithPadding:30];
- //添加菜单到图层中
- [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
感谢作者~!