現在、大きすぎてすばやくロードできない SKTextureAtlas があります。ゲーム内のすべての敵のテクスチャが含まれています。ゲームが特定のレベルに必要なテクスチャのみをロードするように、アトラスを分割したいと考えています。ただし、一部の敵は複数のレベルに出現します。アトラスを分割するにはどうすればよいですか? レベルごとにアトラスを作成するのは避けたいと思います。なぜなら、繰り返される敵の画像ファイルを複製する必要があり、レベルがたくさんあると煩わしくなるからです。よりエレガントなアプローチはありますか?
質問する
126 次
1 に答える
0
適切なシナリオは、レベル全体の画面に表示されるすべてのスプライトが同じテクスチャ アトラスにある場合です。このシナリオでは、テクスチャ アトラスが GPU に読み込まれ、そこに残ります。各フレームの間、CPU は各スプライトの座標/位置/変換について GPU に通知するだけでよく、データ転送を大幅に節約できます。
一部のスプライトは複数のレベルで使用できるため、これにより一部のスプライトを複製しなければならなくなる可能性があることは理解しています。これは、(ゲームの開発者である) あなただけが取ることができるものです。
テクスチャ アトラスを作成するときは、収集するテクスチャが多すぎるか少なすぎるかのバランスを取る必要があります。使用する画像が少なすぎる場合でも、SpriteKit はフレームをレンダリングするために多くの描画パスを必要とする場合があります。含めるイメージが多すぎると、大量のテクスチャ データを一度にメモリにロードする必要が生じる場合があります。Xcode がアトラスを作成するため、異なるアトラス構成を比較的簡単に切り替えることができます。したがって、テクスチャ アトラスのさまざまな構成を試して、最高のパフォーマンスが得られる組み合わせを選択してください。
于 2016-06-26T01:56:26.743 に答える