편집 : 여기 전체 코드 : https://dl.dropboxusercontent.com/u/65678182/assignment1.rar 가능한 모든 도움을 주시면 감사하겠습니다! 작동하는 직사각형 사이의 교차를 사용하여 충돌 체크를 수행하는 방법은 무엇입니까?
나는 브레이크 아웃 게임의 사본을 만들려고 노력하고 있어요,하지만 난 두 개체 (공 및 패들)와 교차할지 어떨지를 확인하여 문제가있다.
내가 지금 충돌 감지이 방법이 있습니다
public static void handleCollisions()
{
System.out.println(ball.getBounds()); // just to check that they
System.out.println(paddle.getBounds()); //are there and moving correct
if (ball.getBounds().intersects(paddle.getBounds()))
{
System.out.println("collision");
}
}
나는 그들이 내가 println 메소드에서 이러한 출력을 얻어야한다 이후로 도로 getBounds 작동 확신 : java.awt.Rectangle의 [X = 393, Y = 788, 14 = 폭, 높이 = 14] java.awt.Rectangle의 [X = Y 350 = 350, 100 = 폭, 높이 = 10]
getBounds code:
public static Rectangle getBounds()
{
return new Rectangle(x, y, radius*2, radius*2);
}
및 I 움직이는 볼 수있게 한 지점에서 그것들은 중첩되어 있지만 그 방법은 그것을 결코 감지하지 못합니다.
나는 이것에 꽤 새로울 것이므로, 어쩌면 어딘가 어리석은 실수 일 수있다. 필요하다면 더 많은 코드를 게시 할 수 있지만 그렇지 않은 것이 좋습니다.
'Rectangle.intersects()'가 작동하고 지금까지 우리에게 보여준 것은 괜찮은 것 같습니다. 문제는 당신이 우리에게 보여주지 않은 부분입니다. 예를 들어,해야 할 때 실제로'handleCollisions()'를 호출하고 있습니까? '공'과 '외륜'이 문제의 대상을 정확하게 참조하고 있습니까? 매 프레임마다 경계 상자 값을 인쇄 할 때 실제로 겹치는 부분을 보시겠습니까? 테스트로 볼의 위치를 패들 위에 직접 초기화하고 움직임을 비활성화하십시오. 이렇게하면 충돌 감지가 작동하는지 쉽게 알 수 있습니다. –
당신이 우리에게 보여준 출력이 * only * 출력이라면, 모든 프레임에서'handleCollisions()'를 호출하지 않는다는 것을 의미합니다. 왜냐하면 당신은 하나 이상의 프린트를 보게 될 것이기 때문입니다 실제로는 교차하지 않지만, 임의의 예제이기 때문에 가정합니다.) –
실행 가능한 예제가 있습니까? – MadProgrammer