遊戲中經常會提供一些菜單項讓用戶開始遊戲、暫停\繼續遊戲、打開\關閉音樂或者是返回到上一個界面,比如下面兩張圖中用紅色線框標記的菜單項
我們可以使用CCMenu和CCMenuItem實現上述的菜單功能,CCMenu繼承自CCLayer,只能添加CCMenuItem爲子節點。一個CCMenuItem就可以表示一個菜單項。
CCMenuItem繼承自CCNode,來看下它的繼承結構
下面直接上代碼
- // 第一個菜單項: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, 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];
單擊中間的青色的"On"後,變爲了紅色的off
長按下面的頭像後,頭像變爲紅色
其他CCMenuItem的用法都大同小異
原文地址:http://blog.csdn.net/q199109106q/article/details/8604273
感謝作者~!