0

以前に親 CCNode または CCLayer に追加された CCSprite がある場合、その親オブジェクトを変更する方法はありますか?

私はやってみました:

[self setParent:newParent];

...

その後:

[parent removeChild:self cleanup:YES];
[newParent addChild:self];

どちらも機能しません...後者は実際にクラッシュを引き起こします。

4

2 に答える 2

1

2 番目のケースでは、autoreleased オブジェクトを親に追加したと仮定します。この場合、スプライトは親から削除された後に削除されるため、別の親に追加することはできません。これを試して

[self retain];
[self removeFromParentWithCleanup:YES];
[newParent addChild: self];
[self release];

また、エラーでクラッシュした場合は、クラッシュ メッセージを後で投稿します。問題の把握に役立ちます。

于 2012-10-31T12:42:01.493 に答える
0

最初に削除(クリーンアップなし)してから新しい親に追加すると、うまくいくはずです。

于 2012-10-30T22:48:20.897 に答える