gratis game creator cocos2d cocos iphone objective-c cocos2d-iphone

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