1

を使用してメニューアイテムを作成しました

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

2 に答える 2

4

次のコードでnormalImageを変更できます。これは良い習慣ではないことは知っていますが、一時的には問題なく機能します。

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

私はそれがあなたのために働くことを願っています。

于 2012-07-03T10:37:06.077 に答える
0

この問題の解決策は、ほぼ同じ名前の追加のメニュー項目を作成することです。visibleプロパティをfalseからtrueに、またはその逆に交換して、menuItemsの状態を変更します。

例:

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を非表示にします。

于 2014-05-26T18:03:21.230 に答える