두 직사각형 사이에 intersects()를 사용하여 충돌 감지 작업을 마쳤습니다. 그러나 플레이어는 직사각형에 갇혀 움직일 수 없습니다. 그래서 나는 플레이어가 움직이기 전에 충돌을 확인하려고 노력 중입니다. 여기 이동하기 전에 Java 충돌 감지
내가 시도 것입니다 :if(up == true){
Rectangle futurerect = new Rectangle(px,py-=5,81,150);
if(!futurerect.intersects(wallexample)){
py-=5;
repaint();
}
}
if(down == true){
Rectangle futurerect = new Rectangle(px,py+=5,81,150);
if(!futurerect.intersects(wallexample)){
py+=5;
repaint();
}
}
if(left == true){
Rectangle futurerect = new Rectangle(px-=5,py,81,150);
if(!futurerect.intersects(wallexample)){
px-=5;
repaint();
}
}
if(right == true){
Rectangle futurerect = new Rectangle(px+=5,py,81,150);
if(!futurerect.intersects(wallexample)){
px+=5;
repaint();
}
}
난 그냥 새로운 사각형을 만들 수 있지만 플레이어가 이동 한 경우, 그리고이 충돌 여부를 확인 할 곳에서. 그럴 경우 이동하지 마십시오.
문제는 플레이어가 사각형으로 이동하면 속도가 느려집니다. 그것은 여전히 벽을 통과하지만 어떤 이유로 느린 속도로 움직입니다.
이 문제의 원인은 무엇입니까?
아, 감사합니다 :
는 PX/PY에 새 값을 할당하지 않도록 여기에 논리를 고정하십시오. – joey942