2つのシーンがあり、両方のシーンが同じ背景画像を共有しているため、両方のシーンのinitメソッドに以下のコードがあり、追加されています。すべてが完璧に機能します。私の質問は、同じ画像ファイルが2回読み取られ、メモリが割り当てられ、割り当てが解除されたため、シングルトンパターンを使用して1つの共通の場所(spriteManager)に保存し、そのインスタンスを再利用できないのはなぜですか?このようにすると、シーン1がシーン2に置き換えられたときに、メモリが解放されます。
これが私の頭に浮かぶのは保持ですが、この保持をどこでどのように処理するかはわかりません。一般的な再利用可能なスプライトを処理するための私のアプローチが間違っている場合は、同じことを行う適切な方法を提案してください。私はこのcocos2dを初めて使用するので、スプライトシートの概念を読んだことがありません。今のところ、すべてをシンプルに保ちたいと思います。
CCSprite *bg = [CCSprite spriteWithFile:@"bg.png"];
2番目の質問、2つの重いシーンを置き換えているときに読んだのですが、最初のシーンのメモリを解放して次のシーンのメモリを割り当てる際にオーバーラップするため、メモリリークが発生する可能性があります。したがって、これを回避するために、軽量シーンのロード(ロードシーン)を数秒間一時停止する必要があることを読みました。それは良い解決策であるか、シーンを置き換えること自体は問題を引き起こしません。
この投稿タイトル(スプライトの再利用とシーンの置き換え)に関する良い記事があれば素晴らしいと思います。。