2009-02-17 52 views
6
[MenuItemFont setFontSize:20]; 
[MenuItemFont setFontName:@"Helvetica"]; 
//I'm trying to change the color of start (below item) 
MenuItem *start = [MenuItemFont itemFromString:@"Start Game" 
             target:self 
             selector:@selector(startGame:)]; 
MenuItem *help = [MenuItemFont itemFromString:@"Help" 
             target:self 
            selector:@selector(help:)]; 
Menu *startMenu = [Menu menuWithItems:start, help, nil]; 
[startMenu alignItemsVertically]; 
[self add:startMenu]; 

回答

5
MenuItemFont *start = [MenuItemFont itemFromString:@"Start Game" 
              target:self 
              selector:@selector(startGame:)]; 

[start.label setRGB:0 :0 :0]; // Black menu item 

標籤是MenuItemFont,菜單項的子類的屬性,讓你的隱式轉換爲菜單項中失去它。

或者,你可以這樣做:

[((MenuItemFont *)start).label setRGB:0 :0 :0] 

(但這是醜陋,STARTMENU將採取MenuItemFont無投訴)。

請記住,顏色大部分是在MenuItemFont中進行硬編碼的,因此調用'setIsEnabled'會將顏色設置回灰色或白色。這發生在MenuItem.m的第239行左右,如果你需要調整它。如果我開始做一個修補程序來暴露MenuItemFont上的這個功能(假設它還沒有在.7.1源代碼中),我會更新我的文章。

3

你可以改變它像這樣的(至少在cocos2d的版本0.99.5)

CCMenuItemFont *startMenuItem = [CCMenuItemFont itemFromString:@"Start" target:self selector:@selector(startTapped:)]; 
[startMenuItem setColor:ccBLACK]; 
4

setRGB已被設置爲爲setColor在新版本中。例如:

[start.label setColor: ccc3(200,0,200)];