現在、SKTextureAtlasは大きすぎてすぐに読み込めません。それは私のゲームのすべての敵のためのテクスチャが含まれています。私はアトラスを分割して、ゲームが特定のレベルに必要なテクスチャだけをロードするようにしたい。しかし、いくつかの敵は複数のレベルで現れます。どのようにアトラスを分割すればよいですか?繰り返される敵の画像ファイルを複製する必要があるため、各レベルのアトラスを作成しないことをお勧めします。レベルが多い場合は迷惑になります。より洗練されたアプローチはありますか?ゲーム内の複数のレベルのSKTextureAtlasを分割する最も良い方法は何ですか?
答えて
レベル全体の画面上に表示されるすべてのスプライトが同じテクスチャアトラスにある場合が良いシナリオです。このシナリオでは、Texture AtlasがGPUにロードされ、そこに残ります。 各フレームの間、CPUは各スプライトの座標/位置/変換についてGPUに通知するだけで、大量のデータ転送を節約できます。
いくつかのスプライトが複数のレベルで使用できるため、いくつかのスプライトを複製する必要があることを理解しています。それはあなたのゲームの開発者としてしか取れないものです。
あなたはテクスチャアトラスを作成Apple docsから、あなたはあまりにも多くのテクスチャを集めるか、少なすぎるとの間でバランスを取るしたいと思います。画像が少なすぎると、SpriteKitはフレームをレンダリングするために多くの描画パスが必要になることがあります。あまりにも多くの画像を含めると、一度に大量のテクスチャデータをメモリにロードする必要があるかもしれません。 Xcodeはあなたのためにアトラスを構築するので、比較的簡単にさまざまなアトラス設定を切り替えることができます。テクスチャの異なる設定でテクスチャを試し、最高のパフォーマンスをもたらす組み合わせを選択してください。
ありがとう!より少ないテクスチャアトラスを使用するとスプライトキットのレンダリング効率が忘れてしまったので、レベルごとに1つの方法があるようです。 –
- 1. Ruby on Railsでユーザー設定を複数のページに分割する最も良い方法は何ですか?
- 2. イオンアプリケーションコードを分割する最良の方法は何ですか?
- 3. トランスポートストリームファイルを分割する最も良い方法は何ですか?
- 4. ゲームのスコアを保存する最も良い方法は何ですか?
- 5. Objective-C roguelike内で複数のレベルを実装する最良の方法は?
- 6. JavaScriptの機能を分離する最も良い方法は何ですか?
- 7. 文字列をPHPでUnicode文字の配列に分割する最も良い方法は何ですか?
- 8. n個の列間でコンテンツを分割する最も良い方法は何ですか?
- 9. IEのCSSファイルをアセットで分割する最も良い方法は何ですか:プリコンパイルアセットパイプライン
- 10. クラス内で複数のクエリを処理する最も良い方法は?
- 11. 複数の配列で文字列を分割する最も良い方法は
- 12. 複数のリストを異なる数のパラメータで比較する最も良い方法は何ですか
- 13. コレクションビューから複数の異なるビューコントローラに分割する最も効果的な方法は何ですか?
- 14. PHPで区切られた文字列データを分割する最も良い方法は何ですか
- 15. JavascriptやCoffeescriptをRailsアプリケーションで分割する最も良い方法は何ですか?
- 16. ゲームの状態を保存する最良の方法は何ですか?
- 17. 文字列を単語の塊に分割する最も良い方法は?
- 18. コレクションをロックする最も良い方法は何ですか?
- 19. Javascript配列のスジを数える最も良い方法は何ですか?
- 20. 複数のFacebookアカウントからイベントのリストを取得する最も良い方法は何ですか?
- 21. 単一のタイプの複数のコンポーネントを使用する最も良い方法は何ですか?
- 22. R複数の変数を変換する最も良い方法は何ですか?
- 23. 複数のonclickボタンをフォーマットする最も良い方法
- 24. Android - 複数のレイアウトバリエーションを保存する最も良い方法
- 25. GitまたはMercurialで複数の依存プロジェクトを管理する最も良い方法は何ですか?
- 26. C#.NETでゲームを作る最良の方法は何ですか?
- 27. NumPyで乱数を取得する最も良い方法は何ですか?
- 28. 複数のサブビューを整理する最良の方法は何ですか?
- 29. 複数のリストを複数のチャートシリーズにバインドする最も良い方法
- 30. Immutable.jsから複数のネストされたキーを削除する最も良い方法は何ですか?
この場合、なぜアトラスを使用しますか?アトラスの全体像は、画像を組み合わせることです。アトラスを使わないでください。画像を分割する必要はありません。 – MoDJ
SpriteKitは各テクスチャのレンダーパスを実行するため、個別に画像を使用するのは非効率的です。 –
60FPSで複数のOpenGLテクスチャから同じフレームにコンポジション操作を行う際に問題は見られませんでした。おそらく、GPUとCPUが異なるメモリ空間を持ち、ある種類のメモリから別の種類のメモリに転送する必要があるMacでは、ランタイムパフォーマンスが大きく異なるかもしれませんが、iOSでAtlasを使用すると、パフォーマンスとはほとんど関係がないようです。 – MoDJ