2012-07-03 32 views
1

我创建使用CCMenuItemImage改变运行的cocos2d

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运行时?

回答

4

您可以使用以下代码更改normalImage。 我知道这不是好的做法,但暂时工作正常。

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

我希望它能为你工作。

+0

它工作。我没有使用精灵。 – maniclorn

0

这个问题的解决方案是让一个额外的菜单项,用几乎相同的名字 由假到真反之亦然

实例交换的Visible属性更改的菜单项的状态:

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 
} 

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