メモリ フットプリントを削減するために、マルチスレッドを使用してオンザフライで追加のテクスチャをロードする必要性に直面しました。
例のケースでは、1 つのレベルで使用する敵が 10 種類ありますが、敵は種類ごとに出てきます。「タイプごと」のコンテキストは、あるタイプの敵が出てきて、プレイヤーがそのすべてのインスタンスを倒した後、別のタイプを呼び出す時が来たことを意味します。こんな感じで全種類出てくるとレベルクリアです。
開始時に最初にすべての敵のテクスチャを一度に読み込まない方が良いことがわかります (かなり大きい 2048*2048 で、その中にたくさんのアニメーション フレームがあり、敵の種類ごとに作成する必要があります)。これをマルチスレッドにして、必要なときに追加のテクスチャをロードします。しかし、cocos2d-x がスレッドセーフではないことはわかっていました。CCSpriteFrameCache クラスを使用して .plist + .png ファイルからテクスチャを読み込み、そこでアニメーションを再作成し、最後にそこから CCSprite を作成して新しいタイプの敵インスタンスを表すことを計画しました。マルチスレッドを使用しないと、大きなサイズのテクスチャをロードする際に発生するラグの遅延が発生する可能性があります。
では、上記の目標に従って、cocos2d-x の別のスレッドにテクスチャをロードするにはどうすればよいでしょうか? スレッドセーフの問題を回避しながら、それでも私の目標を達成できるアイデアも高く評価されます。
注: 私は iOS プラットフォームで開発しています。