Objective c CCMenuItemImage-设置SelecteImage和设置Normal Image
在使用CCMenuItemImage时遇到此问题。似乎我必须将SelectedImage和NormalImage设置为不同的CCSprites,否则会使我的应用程序崩溃。(我计划以后为两个州使用唯一资产)CCMenuItemImage*ItemButton;已定义/初始化 以下操作不起作用:Objective c CCMenuItemImage-设置SelecteImage和设置Normal Image,objective-c,ios,cocos2d-iphone,Objective C,Ios,Cocos2d Iphone,在使用CCMenuItemImage时遇到此问题。似乎我必须将SelectedImage和NormalImage设置为不同的CCSprites,否则会使我的应用程序崩溃。(我计划以后为两个州使用唯一资产)CCMenuItemImage*ItemButton;已定义/初始化 以下操作不起作用: CCSprite *updatedSprite = [CCSprite spriteWithFile:@"1_button.png"]; [ItemButton setNormalImage:updated
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];
我很想知道为什么会发生这种情况,我做了一些挖掘,但没有找到任何确定的东西。任何洞察都很好。当您设置SelectedImage时,精灵将作为子对象添加到ItemButton,因此它有一个父对象。您必须创建CCSprite的第二个实例来设置NormalImage,因为cocos2d的节点层次结构将始终阻止将已经有父对象的对象添加为子对象。谢谢您的回答!这是有道理的,我只是有点难以理解幕后发生了什么。