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];
4

3 回答 3

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

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

Label 是 MenuItemFont 的一个属性,它是 MenuItem 的子类,因此在隐式转换为 MenuItem 期间会丢失它。

或者,您可以这样做:

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

(但这很丑陋,并且 startMenu 将采用 MenuItemFont 没有任何抱怨)。

请记住,颜色大部分是在 MenuItemFont 中硬编码的,因此调用“setIsEnabled”会将颜色设置回灰色或白色。如果您需要调整它,这会发生在 MenuItem.m 的第 239 行附近。如果我开始制作补丁以在 MenuItemFont 上公开此功能(假设它尚未在 pre-.7.1 源中),我将更新我的帖子。

于 2009-03-15T16:46:51.940 回答
4

setRGB 在较新版本中已设置为 setColor。例如:

[start.label setColor: ccc3(200,0,200)];
于 2011-04-06T18:55:56.463 回答
3

您可以这样更改(至少在 Cocos2d 版本 0.99.5 上)

CCMenuItemFont *startMenuItem = [CCMenuItemFont itemFromString:@"Start" target:self selector:@selector(startTapped:)];
[startMenuItem setColor:ccBLACK];
于 2011-02-06T15:21:02.147 回答