フェイザーはスプライトを可視に設定してもfalseに設定されていますか?Phaserは、スプライトを表示可能にしてfalseに設定しますか?
私は、Motherloadと同じようにゲームを作っていますが、無限の地形です。地形は64x64サイズのスプライト(タイル)で構成されています。スプライトがたくさん並んでいることが想像できるように、シーンに追加されます。視界から外れるスプライトは可視プロパティがfalseに設定されていますが、フレームレート(FPS)はプレーヤーが進むにつれて大きく低下し、地形が多く生成されます。スクリーン上のスプライトだけがvisibleプロパティをtrueに設定しているのはなぜですか?私は何度も何度もチェックしていますが、画面上のスプライトだけが可視プロパティがtrueに設定されていて、私のFPSがそれほど下がらない理由を理解できません。
可視性をfalseに設定しても、古い地形はメモリに残り、パフォーマンス上の問題が発生すると思います。シーンを埋めるのに十分な地形スプライトのプールを実装できますか?それらを通る単純なループは、スプライトが場面から外れているときにプールに戻って必要な場面に置かれますか?人が弾丸プールで行う方法と同様です。次に、ゲームのループ中に要素を作成しないでください。 – ste2425
@ ste2425タイルが見えなくなってメモリに保存されるとタイルを取り除かなければならないのですか?私は、可視性がfalseに設定されている(レンダリングすべきではありませんか?)、更新されていないか、または物理チェックを行っているので、なぜこのパフォーマンスの影響を引き起こすのか理解できません。私は、ChromeのJavascriptプロファイラを使用してFPSを落としていたものを確認しました。これは、このドロップを引き起こすレンダリングループです。なぜなら、オフスクリーンであっても、 –
明らかにsprite.kill()はそのスプライトのレンダリングを停止していますが、これをショットしてパフォーマンスに役立つかどうかを確認します。 –