2

これが私の問題です:これらをしているにもかかわらず:

1) すべてのテクスチャ アトラスをプリロードする

2)アトラスをシングルトンに保存して、ARCによって破棄されないようにする

3) すべてのアニメーション配列を Singleton に格納する

SpriteKit には、最初に敵を追加するときにのみ、シーンに敵を追加するときにまだ短い「遅延ジッター」があります。テクスチャが一度描画されると、そのテクスチャがシーンに追加されたときに再び遅延することはありません。テクスチャが最終的に画面に描画されると、メモリが増えていることがわかります。これは、テクスチャがプリロードされていないように見えます。

現在、起動時にAppDelegateにすべてのテクスチャアトラスをプリロードしています...

        SKTextureAtlas.preloadTextureAtlases(primaryAtlas, withCompletionHandler: { () -> Void in

        })

primaryAtlas は、Singleton に格納されている 4 つのアトラスすべての配列です。

私がすでに試したことと、現在のセットアップが何であるかを指摘させてください。

1)アニメーションのフレームの配列はシングルトンに保存され、別のシングルトンにあるアトラスから画像を取得します。それらは同じシングルトンにありました。

2)アトラスからロードされたすべてのテクスチャをシングルトンに保存しようとしました。しかし、現在、アニメーションは保存されていますが、単一のテクスチャはアトラスからそのテクスチャを取得する関数です。

3) 敵のすべてのアニメーションをオフにしました (SKAction を実行しないでください)。敵が追加され、アニメーション化されていない場合でも、ジッターが発生します。

私はこれを非常に長い間修正しようとしてきましたが、正直なところ、解決策はないようです。

答えのないここで見つけた同様の StackOverflow の質問があるようです: Spritekit: First texture draw slow (preloaded)

これは、Instruments で行った分析の写真です。 楽器のキャプチャ

4

1 に答える 1