2009-02-17 8 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]; 

Respuesta

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

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

Label es una propiedad de MenuItemFont, una subclase de Menultem, por lo que se pierde durante la conversión implícita a Menultem.

Alternativamente, se podría hacer:

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

(pero eso es feo, y el menú de inicio tomará un MenuItemFont con ninguna queja).

Tenga en cuenta que los colores están codificados en su mayor parte en MenuItemFont, por lo que al llamar a 'setIsEnabled' volverá a establecer los colores en gris o blanco. Esto sucede alrededor de la línea 239 de MenuItem.m si necesita ajustarlo. Si voy a hacer un parche para exponer esta funcionalidad en MenuItemFont (suponiendo que no esté en las fuentes anteriores a .7.1), actualizaré mi publicación.

3

puedes cambiarlo como esto (al menos en Cocos2d versión 0.99.5)

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

setRGB se ha establecido en setColor en las últimas versiones. Por ejemplo:

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