이것은 플랫폼에 독립적 인 수학적인 질문입니다. 나는 두 개의 사각형이 겹쳐져 있습니다. 나는 "중첩 깊이 (overlap depth)"(한 모양이 얼마나 많이 다른 모양으로 옮겨 졌는지)를 알아야합니다. 나는 적절한 충돌을 허용하기 위해이 데이터가 필요하다. 더 간단한 방법이 있습니까? 아니면 나는 다음을 고수하는 것이 더 낫다.겹치는 부분의 '깊이'를 얻으시겠습니까?
rA
은 직사각형이므로 ia rB
입니다.
depth.x = (rA.position.x - rB.position.x);
depth.y = (rA.position.y - rB.position.y);
이 다소 부정확 한 정보뿐만 아니라 반환 중첩 깊이를 돌려, 그것은 rA
rB
과 사이의 거리를 반환한다 (예상되는). 문제는 두 개체의 겹침 깊이를 찾기 위해 공식을 계산할 수 없다는 것입니다. 이미 충돌이 있다는 것을 알고 있더라도 객체 크기를 고려해야합니까?
나는 depth.x = (rA.width/2) - (rA.position.x - rB.position.x)
을 할 수 있다고 제안되었습니다. 그러나 rB가 왼쪽에있는 경우 -10(example) - 50
과 같이 유효하지 않으므로 (-60
)이 방법은 작동하지 않습니다. 나는 길이가 긴 if
진술을 피하고, 그것들이 얼마나 겹치는지를 아는 것에 충실합니다. 그래서 이것을 해결할 수 있습니까?
이것들은 객체가 충돌하는지 아닌지를 확인하는 것만을 제공하지는 않습니까? (죄송합니다, 나는 바보가 있습니다) –
이것은 교차의 깊이와 교차 여부를 알려줍니다. 교차점의 깊이는 마지막 표현식에 의해 주어 지지만 음수이면 교차점이 없습니다. –