cocos2d
たくさんのアセットをロードするロードシーンがあるゲームがあります。ゲームはスプラッシュ画面から始まり、読み込みシーンを開始します。読み込みシーンは背景を読み込むことから始まります。そのため、アセットが読み込まれている間、ユーザーには読み込みシーンの背景が表示されます。
CCSprite::spriteWithFile:
ファイルパスを呼び出して渡すことにより、読み込みシーンの背景を読み込みます。loadingbackground.pvr.ccz
デバイスによって動作が異なるようです。
- iphone(3gs)シミュレーターでは、ロードシーンが期待どおりに表示されます。
- iphone retinaシミュレーターでは、読み込みシーンが表示されず(アセットがまだ多くないため、すぐに発生する可能性があります)、メインメニューシーンに直接移動します。
- iPad 3デバイスでは、スプラッシュ画面が表示され、次に0.5秒の黒い画面が表示され、メインメニューシーンが表示されます。
iPad 3で黒い画面が表示されないようにするために何ができるかを知りたいのですが、これは読み込み中の背景の読み込みに時間がかかったためだと思います。
私は次の最適化を試しました(主にメモリ最適化に関する@Steffenのブログ投稿に基づいています):
- 読み込み中の背景(元々は2.3 MB RGB8 pngファイル)をpvr.cczスプライトシートに移動し、サイズを1.8MBに縮小しました。
- 使用後すぐに画像をテクスチャから削除しました。
iPad 3でまだ黒い画面が表示されます。何か提案はありますか?
更新:問題が見つかりました-オーバーライドOnEnter
して呼び出し[[CCDirector sharedDirector]replaceScene]
、バックグラウンドスレッドからも呼び出しているコードがありました。OnEnterオーバーロードを削除し、ちらつきなしで動作しました。
ありがとう