問題タブ [sktextureatlas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - SKTextureAtlases をプリロードすると、メモリの問題とクラッシュが発生する
アドベンチャー系のゲームを作っています。このゲームの作成中にメモリ リークが発生したため、SKPreloader と呼ばれるプリローダーを作成することにしました。
私のGameViewControllerで:
SKPreloader で:
_ で始まるテキストは SKTextureAtlases です。
デリゲートは GameViewController で読み取られ、最初のシーンを開始します。SKPreloader がメソッド preloadRestOfTextureAtlases に到達すると、メモリ使用量は 240 MB になり、そこにとどまり、最終的にクラッシュが発生します。
この問題を修正し、アトラスをプリロードする方法について何か助けはありますか?
追加: 最大のアトラスは 16MB です。小さなアトラスはすべて、最後の配列にプリロードされています。
animation - 既存のテクスチャ アトラス jpg から SpriteKit でテクスチャ アルタを作成する
Xcode/自分のマシンの外部で作成された以前のイメージ アセットの既存のアセットを使用して、テクスチャ アトラスを作成しようとしています。
画像を Xcode にインポートしても「分割」されず、Xcode / SpriteKit に「アトラス」の場所を伝える方法がわかりません。
画像エディターを使用して各画像をアセットとして手動で食べる以外に、画像が実際に既にアトラスであることを Xcode に納得させるにはどうすればよいですか?
最後に、アニメーションを行うために自分で画像を循環する必要があるため、アトラスを使用する価値はありますか? アトラス ストリップの x/y 位置をハードコーディング (!) し、SKAction である種の回転/ループ コードを実行する方がよいでしょうか?
ios - Spritekit - SKTextureAtlas から @3x 画像をロードしない
私のサンプル プロジェクトは削除されたので (これはテストがはるかに簡単になると思いました)、ポイントを説明するためにいくつかのコードと画像を投稿します。
サンプル画像はこちら
私のアトラスのセットアップ:
私の起動イメージのセットアップ:
これらのスプライトをシーンに追加するコード
これらは私の結果です:
iPhone 5 シミュレーター:
iPhone 6 プラス シミュレーター:
アセット カタログを使用するように起動イメージを変更してみました。次に、iPhone 6 plus は 2 倍の画面をアップスケールするようです。まだ 2x 画像をロードしていますが、拡大しています。
3x 画像をロードし、2x 画像に合わせてスケーリングする必要があります。
以下のガブーの答えは、私を正しい方向に向けました。新しいプロジェクトに取り組んでいます。ただし、実際の SpriteKit プロジェクトに彼のソリューションを使用すると、3x 画像は縮小されません。それらは本来あるべきサイズよりも 3 倍大きいです。
ios - スプライト キットのアトラス ファイルを作成するには?
私は SpriteKit をいじっていましたが、Apple の例では "atlas" 拡張機能を備えた SpriteKit を使用していることに気付きました。彼らは Xcode でそれらを使用しないので、私がドームにしたのは |"Asset files"| を使用することです。それらの名前を「.atlas」に変更しました
これは正しい方法ですか、それともいくつかのテンプレートがありませんか?
また、その上に、サウンド ファイルをバンドルして (再エンコードできるので、どの形式でも構いません)、単一のアーカイブにフォーマットする方法はありますか?
ios - SKTextureAtlas preloadTextureAtlases: withCompletionHandler はどのように機能しますか?
これら 2 つの例の違いと、 preloadTextureAtlases :withCompletionHandler がどのように機能するかを理解しようとしています。コードは次のとおりです。
アニメーションがスムーズなので、preloadTextureAtlases がバックグラウンド スレッドで読み込みを行っていると思いますか?
しかし、バックグラウンド スレッドから preloadTextureAtlases を呼び出すことに違いはありますか (または何らかの問題が発生する可能性があります)。このような:
そして、didMoveToView からこのメソッドを呼び出します。
ios - 辞書から SKTextureAtlas を作成する
iOS プロジェクトに UIImages のディクショナリがある場合、実行時にディクショナリ イメージから SKTextureAtlas を適切に作成するにはどうすればよいですか? 私はこの目標を達成できませんでしたが、Apple の SKTextureAtlas クラス リファレンスでは、アトラスを宣言するときに次のように提案されています。
たとえば、tempDictionary の UIImages から SKTextureAtlas を作成するために、次のコードを完成または再加工するにはどうすればよいでしょうか?