シーンの読み込み時に、スプライト、サウンドなどのすべてのリソースをプリロードします。しかし、テスト デバイスの 1 つ (HTC Desire、Android 2.2.2) は、読み込み後にリソースをアンロードするため、ゲームがサウンドを再生したりスプライトを描画しようとすると、フリーズします。リソースを再度ロードします。この問題は HTC Desire でのみ発生します。他のデバイス (Samsung Galaxy Ace、Android 2.3.6 & Acer A100 タブ、Android 4.0.3) ではこの問題は発生しませんでした。
なぜこれが起こるのか誰か教えてもらえますか?ありがとう。
これは、リソースをプリロードする方法です。
for (.....)
{
CCString* file = CCString::create(path.c_str());
if(file) {
CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage(file->getCString());
}
}
私もこのように試しましたが、保存結果が得られます:
for (.....)
{
CCString* file = CCString::create(path.c_str());
if(file) {
CCSpriteFrame* frame = new CCSpriteFrame();
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(frame, file->getCString());
frame->retain();
}
}
どちらの方法でも、 CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo() は、すべてのテクスチャが読み込まれていることを示しています。
01-29 15:18:36.111: D/cocos2d-x デバッグ情報 (7579): cocos2d: CCTextureCache dumpDebugInfo: 53 テクスチャ、103840 KB (101.41 MB)
また、プリロードされたテクスチャの量を 31 (42.76 MB) に減らそうとしましたが、何も変わりませんでした。
PS: 繰り返しますが、この問題は Android OS 2.2 の Desire でのみ発生します ...