移动开发 \ Android \ 八、CCMenu和CCMenuItem

八、CCMenu和CCMenuItem

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

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

八、CCMenu和CCMenuItem

   

八、CCMenu和CCMenuItem

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

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

八、CCMenu和CCMenuItem

下面直接上代码

[java] view

plaincopy

// 第一个菜单项:CCMenuItemFont  

// 设置文字大小  

[CCMenuItemFont setFontSize:50];  

CCMenuItemFont *item1 = [CCMenuItemFont itemFromString:@"文字菜单" block:^(id sender) {  

    NSLog(@"点击了文字菜单");  

}];  

// 文字为黄色  

item1.color = ccc3(255, 255, 0);  

  

// 第二个菜单项:CCMenuItemToggle  

// 重新设置字体和大小  

[CCMenuItemFont setFontName:@"Courier New"];  

[CCMenuItemFont setFontSize:40];  

// on为青色  

CCMenuItemFont *on = [CCMenuItemFont itemFromString:@"On"];  

on.color = ccc3(0, 255);  

// off为红色  

CCMenuItemFont *off = [CCMenuItemFont itemFromString:@"Off"];  

off.color = ccc3(255, 0, 0);  

CCMenuItemToggle *item2 = [CCMenuItemToggle itemWithBlock:^(id sender) {  

    NSLog(@"切换了开关状态");  

} items:on, off, nil];  

  

// 第三个菜单项:CCMenuItemSprite  

// 默认的精灵  

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);  

// 垂直方向排列菜单项,每个菜单项之间有30的垂直间距  

[menu alignItemsVerticallyWithPadding:30];  

  

// 添加菜单到图层中  

[self addChild:menu];  

默认的效果图

八、CCMenu和CCMenuItem


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

八、CCMenu和CCMenuItem


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

八、CCMenu和CCMenuItem


其他CCMenuItem的用法都大同小异


转载地址:点击打开链接

意见反馈 常见问题 官方微信 返回顶部