2017-08-18 13 views
0

私は簡単な質問があります。私はちょうど私が任意の特定の言語 に例を書いていないですが、プロジェクト自体のために、私は私が配列Javascript全体の配列を解析しないポイント間の距離

var boxes = []; 

そして選手の配列を持っているJavaScriptの を使用しています言いたい始める直前

var players = []; 

プレーヤーとボックスの両方が

{x: centerX, y: centerY, r: radius} 

のオブジェクトである私は、唯一の方法は、任意のプレイヤーCOLをかどうかをチェックすることを考えます私は何かをしなければならない任意のボックス(とどのような)に横たわって

for player in players 
    for box in boxes 
     # collision check 

それを効率的にする方法はありますか? 私は、たとえば1000人のプレイヤーと1000個のボックスを解析することには多くの時間がかかることを認識しています。

私の友人は、ボックスはプレイヤー

の前で200個のピクセルまでそのようなものがあります言うことができます検出するであろう実際の生活の中でソナーのように気にいらない、そこにあるべきと考えて?

おかげ

+0

ここに詳細はありません。ボックスにはどのような属性がありますか?プレイヤーはどんな属性を持っていますか? –

+0

には、ボックスやプレーヤーのサンプルが含まれています。 –

+0

基本的には位置xとyのオブジェクトだけです – zloutek1

答えて

0

あなたはすべてのマップのピクセルの座標を持っているとボックス/プレイヤーがXであるアップデート動くときだけでした(X、Y)の位置と衝突検出のためのちょうど1つの以上の項目がこの中にあるかどうかを確認場所、もしそうなら - 衝突。このフォーラムは、ゲーム開発者のためではありません

しかし、あなたはあなたがそれを改善するために、アレイの機能を利用することができhttps://gamedev.stackexchange.com/

-1

で、このような質問をする必要があります。

const hasCollision = players.reduce((acc, player) => acc || boxes.some(box => player.x === box.x), false);

関連する問題