2017-05-21 5 views
0

私のゲームでは大きなマップが存在し、プレーヤがそれらを見ることができないときにシェイプを描画しないとゲームのパフォーマンス。JavaScript - 画面や他のゲームの最適化の対象外のオブジェクトを描画します

また、すべてのフレームで、平方根が多い約500以上の他の位置ベクトル(敵、食糧、弾丸の相互作用に使用される)までの距離を確認しています。 XとYの両方の要素を組み合わせて生の推定値を作成すると、ゲームのパフォーマンスが大幅に向上しますか?

+0

ゲームのパフォーマンスを向上させる他の方法はありますか? – Canatron

答えて

0

これらの質問に答える唯一の方法は、試して何が起こるかを確認することです。何かが画面上にあるかどうかを計算するコストと、それを描画するコストとを比較検討する必要があります。繰り返しますが、両方を測定して自分で決めなければなりません。

距離の測定は、平方根を避けるために距離の二乗を試してみることができます。

または、quadtreeのようなデータ構造にオブジェクトを格納すると、近くのオブジェクトの距離のみをチェックできます。あるいは、それを簡単にする:本当にすべての500個のベクトルを常にアクティブにする必要がありますか?なぜ彼らを保管しておらず、必要な時にのみそれらを活性化するのですか?

もう一度、あなたの質問に答える唯一の方法は、試してみることです。これでゲームのパフォーマンスが大幅に向上するかどうかはわかりません。あなただけが、物事を試して、それに答えることができます。がんばろう。

+0

私の男ケビン!私は距離二乗法について研究し、オブジェクトを "クアッドツリー"に保存することを忘れないで、もう一度あなたの助けをありがとう。 – Canatron

+0

@Canatron問題ありません。距離の二乗式は、最終的な平方根を持たない距離式です。実際の数を知る必要がない場合は、距離を比較するのに適しています。そしてquadtreeはちょうど1つの方法です。プレイヤーが入力できる "ゾーン"ごとに別の 'ArrayList'にオブジェクトを格納するなどの簡単な方法があります。 –

+0

数学はゲームに遅れていなかった、それはすべてのそれらの形を描いていた!私はプレーヤーに過去に見ることのできなかった円の周りに "レンダリング距離"を与えました(サークルは画面よりも大きいので何も変わっていないようです)が、パフォーマンスの違いは非常に目立っています! (プレイヤーが非常に大きくなり、すべての図形を描く必要がある全体の地図を見ることができるまで、アップ – Canatron

関連する問題