0

Cocos2d 2.0 と XCode 4.5.2 を使用していますが、特定の時間にどのスプライトシート/画像がまだメモリ上にあるかを検出する方法を知りたいです。

例: Scene で images.pvr.ccz スプライトシートを読み込み、次に replaceScene を呼び出して Scene2 を読み込みます。Scene2 の実行中に、常駐メモリが各シーンで増加するため、images.pvr.ccz がまだメモリ内にあるかどうかを確認したいと考えています。

インストルメント ツールを使用する必要がありますか、それともテクスチャ キャッシュ関連のクラスにブレークポイントを追加する必要がありますか?

次のように、画像をframeCacheに追加します。

 [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"images.plist"];
        batchNode = [CCSpriteBatchNode batchNodeWithFile:@"images.pvr.ccz"];
        [self addChild:batchNode]; 

追加の詳細 - 不要

次の動作があります。シーンを置き換えるたびに、スプライトシートのサイズに対応する「x」MB だけメモリが増加します。

これらの呼び出しを各シーンの init メソッドに追加しましたが、それでもメモリは増加します。

    [CCAnimationCache purgeSharedAnimationCache];
    [CCShaderCache purgeSharedShaderCache];
    [[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];
4

1 に答える 1

2
[[CCTextureCache sharedTextureCache] dumpCachedTextureInfo];

この呼び出しを使用して、現時点でメモリにロードされているテクスチャを確認します。また、未使用のテクスチャを削除する場合は、

[[CCTextureCache sharedTextureCache] removeUnusedTextures];
于 2013-09-06T10:40:51.100 に答える