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

最佳答案

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

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

Label是MenuItemFont的属性,MenuItemFont是MenuItem的子类,因此您在隐式转换为MenuItem时会丢失它。

或者,您可以执行以下操作:
[((MenuItemFont *)start).label setRGB:0 :0 :0]

(但这很丑陋,startMenu会接受一个MenuItemFont,而不会产生任何提示)。

请记住,大多数颜色都是在MenuItemFont中进行硬编码的,因此调用“setIsEnabled”会将颜色设置为灰色或白色。如果您需要对其进行调整,则会在MenuItem.m的第239行左右发生。如果我打算制作一个补丁程序以在MenuItemFont上公开此功能(假设在7.7.1之前的版本中尚未提供此功能),我将更新我的文章。

关于iphone - 如何更改Cocos2d MenuItem的颜色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/558300/

10-13 03:52