0

CCMenuItemImage を使用しているときに、これに遭遇しました。SelectedImage と NormalImage を異なる CCSprites に設定する必要があるようです。そうしないと、アプリケーションがクラッシュします。(後で両方の状態に固有のアセットを使用する予定です) CCMenuItemImage *ItemButton; 定義/初期化されます。

以下は機能しません。

CCSprite *updatedSprite = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setNormalImage:updatedSprite];
[ItemButton setSelectedImage:updatedSprite];

以下は機能します:

CCSprite *updatedSpriteNormal = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setNormalImage:updatedSpriteNormal];

CCSprite *updatedSpriteSelected = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setSelectedImage:updatedSpriteSelected];

なぜそうなるのか知りたくて、いろいろ調べてみましたが、決定的なものは見つかりませんでした。どんな洞察も素晴らしいでしょう。

4

1 に答える 1

2

SelectedImage を設定すると、スプライトが子として ItemButton に追加されるため、親があります。cocos2d のノード階層により、既に親を持つオブジェクトを子として追加することが常に防止されるため、CCSprite の 2 番目のインスタンスを setNormalImage に作成する必要があります。

于 2012-11-13T00:04:43.153 に答える