볼이나 퍽과 같은 둥근 객체를 비롯하여 충돌을 처리하는 자바 게임을 개발하고 있습니다 (개발자 언어는 별 문제가 아닙니다). 타이머를 사용하므로 모든 프레임마다 충돌이 있는지 확인합니다.충돌 감지 : 둥근 객체
다음은 개체의 오른쪽 상단 부분을 나타내는 그래프입니다.
물체의 중심이 지점 [0,0]로 표시되며, 그 반경 10px이며 단위는 픽셀이다. 또 다른 하나 (obj_2
가) 난 그냥 자신의 좌표를 얻을 수 있고 Math.abs(obj_1.x - obj_2.x) + Math.abs(obj_1.y - obj_2.y) <= radius
을 확인하여 내가 알고 것이다 그것을 충돌하는 경우
이제 내 객체 (예를 들어, obj_1
) 인 광장/다이아몬드 모양 (파란 선), 찾을 경우 충돌이 있습니다.
그러나 문제는 원 모양 (빨간색 선)이 더 많은 공간을 차지하며 차지하는 공간이 직선으로 묶이지 않기 때문에 더 까다로운 문제입니다. 물론 나는 어떤 값을 반올림해야 할 것입니다 (예를 들어 이전 그래프에서 x = 2
에서 충돌을 확인하려면 9.5에서 10과 같이 보이는 y 값을 반올림해야합니다). 그러나 나는이 수식을 얻는 방법을 모른다. 어떤 도움을 주시면 감사하겠습니다.
완벽하고, 아주 잘 해결되었습니다. 고마워요! – Rob