游戏中经常会提供一些菜单项让用户开始游戏、暂停\继续游戏、打开\关闭音乐或者是返回到上一个界面,比如下面两张图中用红色线框标记的菜单项
![bubuko.com,布布扣](http://img.my.csdn.net/uploads/201302/22/1361546173_8981.png)
我们可以使用CCMenu和CCMenuItem实现上述的菜单功能,CCMenu继承自CCLayer,只能添加CCMenuItem为子节点。一个CCMenuItem就可以表示一个菜单项。
CCMenuItem继承自CCNode,来看下它的继承结构
![bubuko.com,布布扣](http://img.my.csdn.net/uploads/201302/22/1361546978_1119.png)
下面直接上代码
-
-
- [CCMenuItemFont setFontSize:50];
- CCMenuItemFont *item1 = [CCMenuItemFont itemFromString:@"文字菜单" block:^(id sender) {
- NSLog(@"点击了文字菜单");
- }];
-
- item1.color = ccc3(255, 255, 0);
-
-
-
- [CCMenuItemFont setFontName:@"Courier New"];
- [CCMenuItemFont setFontSize:40];
-
- CCMenuItemFont *on = [CCMenuItemFont itemFromString:@"On"];
- on.color = ccc3(0, 255, 255);
-
- CCMenuItemFont *off = [CCMenuItemFont itemFromString:@"Off"];
- off.color = ccc3(255, 0, 0);
- CCMenuItemToggle *item2 = [CCMenuItemToggle itemWithBlock:^(id sender) {
- NSLog(@"切换了开关状态");
- } items:on, off, nil];
-
-
-
- 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(@"点击了图片按钮");
- }];
-
-
- CCMenu *menu = [CCMenu menuWithItems:item1, item2, item3, nil];
-
- CGSize winSize = [CCDirector sharedDirector].winSize;
- menu.position = ccp(winSize.width * 0.5f, winSize.height * 0.5f);
-
- [menu alignItemsVerticallyWithPadding:30];
-
-
- [self addChild:menu];
默认的效果图
![bubuko.com,布布扣](http://img.my.csdn.net/uploads/201302/23/1361550008_6357.png)
单击中间的青色的"On"后,变为了红色的off
![bubuko.com,布布扣](http://img.my.csdn.net/uploads/201302/23/1361549769_7217.png)
长按下面的头像后,头像变为红色
![bubuko.com,布布扣](http://img.my.csdn.net/uploads/201302/23/1361549808_4044.png)
其他CCMenuItem的用法都大同小异
八、CCMenu和CCMenuItem,布布扣,bubuko.com
八、CCMenu和CCMenuItem
原文:http://www.cnblogs.com/llios/p/3786304.html