私はゲームに取り組んでおり、メニューで使用できるように各レベルのサムネイルを作成したいと考えています。私はこのように CCRenderTexture でこれを行います:
CCRenderTexture *renderer = [CCRenderTexture renderTextureWithWidth:bounds.size.width height:bounds.size.height];
ScreenShotLayer *scene = [[ScreenShotLayer alloc] init];
[renderer begin];
[scene visit];
[renderer end];
[renderer saveToFile:[NSString stringWithFormat:@"level%@.png", level.levelId] format: kCCImageFormatPNG];
これはすべてうまく機能し、イメージは保存されますが、大量のメモリを占有し、決して解放されません。このデータを保存しないと、私のゲームは 8 MB の RAM を必要とします。画像を保存すると、430 MB 以上かかります。
すべてを同じままにしてsaveToFile
呼び出しをコメントアウトすると、8 MB のメモリ使用量に戻ります。これをleaksツールでデバッグしましたが、リークは見つかりませんでした。
これはフレームワークの問題ですか?これを処理するより良い方法はありますか?私は何かばかげたことをしていますか?
私のゲーム全体はオープンソースであり、 https://github.com/zgrossbart/bridgesで入手できます。このコードはLevelMgr.mmで発生します。
助けてくれてありがとう、
ザック