3
저는 자바 스크립트로 게임을 만들고 있어요. 경계 상자 객체를 2 개 가져 와서 교차하는 경우 true를 반환하는 함수와 같은 것을 찾을 수 없습니다. 내가 찾은 모든 예제 내 작은 게임에 너무 복잡한 것 그리고 대부분은 특정 언어 위치 :/회전 된 직사각형으로 2 차원 충돌 감지를위한 자바 스크립트 기능?
나는이 작은 문제에 시간 동안 갇혀 있었어요//my box object
function bounding_box (x, y, width, height, rotation) {
var box = {};
box.x = x;
box.y = y;
box.w = width
box.h = height;
box.r = rotation; //degrees from origin - all objects in the game have the same rotation origin
return box;
}
function boxes_collide (a, b) {
//if collision return true
//else return false
//my box collision function at the moment
//doesn't work with rotation
return !(
((a.y + a.h) < (b.y)) ||
(a.y > (b.z + b.h)) ||
((a.x + a.w) < b.x) ||
(a.x > (b.x + b.h))
);
}
//create boxes
var boxa = bounding_box(0, 0, 5, 3, 45);
var boxb = bounding_box(1, 3, 4, 2, 90);
//test for collision
if (boxes_collide (boxa, boxb)) {
alert('collision');
}
이 어떤 도움을 주시면 감사하겠습니다! :)
이것은 도움이 될만한 http://wiki.processing.org/w/Rect-Rect_intersection – elclanrs
나는 그 기능을 이미 정확히 알고 있지만, 상자가 회전 할 때 매우 정확하지는 않습니다 :/ – nevernew
분리 축 Oriented Bounding Boxes (회전 된 사각형)에 대한 테스트. OBB와 SAT를 이해하는 데 도움이되도록 약간의 SAT 시각화를 잠깐 썼습니다. JSBin은 다음과 같습니다. http://jsbin.com/esubuw/4 – Rikonator