2017-12-11 9 views
0

2つのオブジェクトが衝突したときに通知するcollisionDetector関数を作成しようとしています。私は以前これをしていましたが、それはただ一つの主目的であり、他のすべての目的は配列の一部でした。だからこそ問題はありませんでしたが、今はいくつかの個別のオブジェクトがあります。いくつかのオブジェクト間のすべての衝突を認識する関数を作成する方法はありますか?あなたのオブジェクトであるためJavaScript内の複数のオブジェクト間の衝突検出器

var myBrick1 = new object(brick1.img, brick1.x, brick1.y, brick1.width, brick1.height); 
 
var myBrick2 = new object(brick2.img, brick2.x, brick2.y, brick2.width, brick2.height); 
 
var myBrickV1 = new object(brickV1.img, brickV1.x, brickV1.y, brickV1.width, brickV1.height); 
 
\t 
 
function object(img,x,y,width,height){ \t \t 
 
    this.Sprite = new Image(); \t \t \t \t \t \t \t 
 
    this.Sprite.src = img; \t \t \t \t \t 
 
    this.X = x; \t \t \t \t \t \t \t \t \t \t 
 
    this.Y = y; 
 
    this.Width = width; 
 
    this.Height = height; 
 

 
} 
 
\t 
 
function drawBrick(whichBrick){ \t \t 
 
\t \t ctx.drawImage(whichBrick.Sprite, whichBrick.X, whichBrick.Y, whichBrick.Width, whichBrick.Height); 
 
\t }

(私は私のオブジェクトのクリックとドラッグ機能を作るためのmouseup、マウスダウン、とのMouseMoveイベントを使用)

+0

あなたはlodashのような任意のexternaライブラリを使用してOKですか? –

+0

私はロダッシュに精通していませんが、これをお勧めするなら、私には大丈夫です。 – Benjamhw

+0

これは非常に使いやすいです、あなたはあなたの必要に応じて '交差点'と '差分'と他の方法を使用することができます。最初に試してみてください。 –

答えて

0

:ここに私のオブジェクトのための機能ですすべての長方形、あなたはそれらの座標が重複しているかどうかをチェックするだけです(私はx、y、幅、高さを持っているので、すべてのデータを持っているので残りは数学です。

私はここで同様の記事で、より詳細な回答を書いた:[collision detection for paddle (pong/breaking block game)

+0

それは私がそれを行う方法を知らないわけではない、私はちょうど私のメソッド(私はオブジェクトの位置のすべての1つをチェックする)は少し面倒だと思う。しかし、とにかくありがとう – Benjamhw