0

在使用 CCMenuItemImage 时遇到了这个问题。似乎我必须将 SelectedImage 和 NormalImage 设置为不同的 CCSprite,否则它会使我的应用程序崩溃。(我计划稍后在这两个州使用独特的资产) 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

当您 setSelectedImage 时,精灵作为子项添加到 ItemButton,因此它有一个父项。您必须为 setNormalImage 创建 CCSprite 的第二个实例,因为 cocos2d 的节点层次结构将始终阻止将已经有父对象的对象添加为子对象。

于 2012-11-13T00:04:43.153 回答