CCMenuItemImage更改运行时cocos2d

时间:2012-07-03 09:12:27

标签: ios5 cocos2d-iphone ccmenuitem

我使用

创建了一个menuitem
menuItemImage=[CCMenuItemImage itemFromNormalImage:@"image_old.png" selectedImage:@"image_old.png" target:self selector:@selector(play)];

我使用下面的代码来更改CCMenuItemImage,但它无法正常工作。它说不兼容的指针类型将'CCTextured2D'发送到normalimage的参数。

 [menuItemImage setNormalImage:[[CCTextureCache sharedTextureCache]addImage:@"image_new.png"]];

如何更改menuItemImage运行时?

2 个答案:

答案 0 :(得分:4)

您可以使用以下代码更改normalImage。 我知道这不是一个好习惯,但暂时还可以。

[menuItemImage setNormalImage:[CCSprite spriteWithFile:@"image_new.png"]];

我希望它适合你。

答案 1 :(得分:0)

此问题的解决方案是创建一个名称几乎相同的额外菜单项 通过将visible属性从false更改为true来更改menuItem的状态,反之亦然

示例:

CCMenuItem *menuItemOn;
CCMenuItem *menuItemOff;

-(void)ChangeMenuItem{
menuItemOff = [CCMenuItemImage itemWithNormalImage:@"buttonOff.png" selectedImage: @"buttonOff.png"  target:self selector:@selector(Method_off)];
 itemJoinOff = [CCMenuItemImage itemWithNormalImage:@"buttonOn.png.png" selectedImage: @"buttonOn.png" target:self selector:@selector(Method_On)];
menuItemOff.visible = false;
menuITemOn.visible = true;
menuItemOff position ..... etc
} 

每当菜单On / Off状态必须更改时,使MenuItemOn可见并且menuItemOff不可见。