以前に親 CCNode または CCLayer に追加された CCSprite がある場合、その親オブジェクトを変更する方法はありますか?
私はやってみました:
[self setParent:newParent];
...
その後:
[parent removeChild:self cleanup:YES];
[newParent addChild:self];
どちらも機能しません...後者は実際にクラッシュを引き起こします。
以前に親 CCNode または CCLayer に追加された CCSprite がある場合、その親オブジェクトを変更する方法はありますか?
私はやってみました:
[self setParent:newParent];
...
その後:
[parent removeChild:self cleanup:YES];
[newParent addChild:self];
どちらも機能しません...後者は実際にクラッシュを引き起こします。
2 番目のケースでは、autoreleased オブジェクトを親に追加したと仮定します。この場合、スプライトは親から削除された後に削除されるため、別の親に追加することはできません。これを試して
[self retain];
[self removeFromParentWithCleanup:YES];
[newParent addChild: self];
[self release];
また、エラーでクラッシュした場合は、クラッシュ メッセージを後で投稿します。問題の把握に役立ちます。
最初に削除(クリーンアップなし)してから新しい親に追加すると、うまくいくはずです。