2017-12-11 21 views
0

두 객체가 충돌 할 때이를 알리는 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 }

당신의 객체이기 때문에

+0

있습니다

은 여기 비슷한 게시물에 자세한 대답을 썼다? –

+0

나는 로다시에 익숙하지 않다. 그러나 만일 당신이 이것을 권하면, 나와 함께하는 것이 좋다. – Benjamhw

+0

아주 사용하기 쉽습니다. 필요에 따라'교차'와'차이'와 다른 방법을 사용할 수 있습니다. 먼저 시도해보십시오. –

답변

0

(내 개체를 클릭 및 드래그 기능을 할 mouseup에, mousedown,과에서 mousemove 이벤트를 사용) 모든 직사각형은 좌표가 겹치는 지 확인하기 만하면됩니다 (x, y, 너비, 높이가 있으므로 모든 데이터가 있고 나머지는 수학의 비트입니다 : 더 많은 노력을 보여주세요). 당신이 lodash 같은 어떤 실외 라이브러리를 사용으로 확인 [collision detection for paddle (pong/breaking block game)

+0

그것은 어떻게 해야할지 모르겠다. 나는 (내가 객체 위치를 매번 체크하는) 나의 방법이 약간 성가신다고 생각한다. 하지만 어쨌든 고마워. – Benjamhw