0

現在、スプライト キットを使用して、タイル マップ上でシューティング タイプのゲームに取り組んでいます。「敵」は、すべてのアニメーション フレームを保存する一連のテクスチャ アトラスからロードされます。これまでのところ、すべての敵とプレイヤーとともにマップ上のテクスチャは、平均で約 110 ~ 130 MB のメモリを消費しています。私が観察している問題は、レベルを切り替えるときです。基本的に、そのレベルの新しいテクスチャは、敵のテクスチャとともにロードされます。最初のレベルから離れたときに、すべてのテクスチャ アトラスの割り当てを解除しようとしましたが、メモリ消費量はまだ増えているようです。私はそれが 150 から 180、時には 200 mb になるのを見てきました。

テクスチャ アトラスは、逆参照された後もメモリに保持されますか? いくつかの異なるレベルがあり、それぞれに独自のマップと独自の敵があることを考えると、これは潜在的な問題であると考えています. 私の他の読書に基づいて、これは事実かもしれません。スプライト キットがいつ、どこでテクスチャ アトラスの割り当てを解除するかを処理している場合、使用しているテクスチャの量で最終的にメモリ警告の問題が発生するかどうかはわかりません。

4

1 に答える 1

0

アトラスを指す参照が残っていないことを確認してから、次のようなものを使用してくださいmyTextureAtlas = nil;

上記を使用しています-(void)willMoveFromView:(SKView *)view

于 2014-08-12T12:53:41.810 に答える