iphone - cocos2d - cocos game creator
¿Cómo cambio el color de un elemento de menú de Cocos2d? (3)
[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
La etiqueta es una propiedad de MenuItemFont, una subclase de MenuItem, por lo que la pierde durante el lanzamiento implícito a MenuItem.
Alternativamente, podrías hacer:
[((MenuItemFont *)start).label setRGB:0 :0 :0]
(pero eso es feo, y startMenu tomará un MenuItemFont sin quejas).
Tenga en cuenta que los colores están codificados en su mayoría en MenuItemFont, por lo que al llamar a ''setIsEnabled'' los colores volverán a ser grises o blancos. 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.
Puedes cambiarlo así (al menos en Cocos2d versión 0.99.5)
CCMenuItemFont *startMenuItem = [CCMenuItemFont itemFromString:@"Start" target:self selector:@selector(startTapped:)];
[startMenuItem setColor:ccBLACK];
setRGB ha sido configurado para setColor en versiones más nuevas. Por ejemplo:
[start.label setColor: ccc3(200,0,200)];