나는 총알을 발사하는 단순한 원과 그 멀티 플레이를하는 등의 작업을하고 있습니다.이미지를 "경계선"으로 만들기
public void checkCollisions(){
Rectangle r1 = bo.getBounds();
Rectangle d = p.getBounds();
if (d.intersects(r1))
border = true;
}
을 그리고 국경 = 사실은 내가 움직이는 캐릭터를 중지 기본적으로 경우 : 글쎄, 난 종류의 u는이 같은 충돌 감지를 시도 통과해야 미로 형의 일처럼 경계를 만들려고 노력하고 있습니다. 내가이 일을 할 때 나는 두 가지 문제가있다.
- 그는 정말로 느리게 움직이지 않는다.
- 그는 국경을 벗어난 정말로 느린 상태로 머물러 있습니다.
이 같은 경계를 사용
이boolean border = false;
다음 내 페인트 방법에 내가이 상태는 : P DX를하고 마구의 더 :
if (border)
p.dx = 0;
p.dy = 0;
p는 가이 클래스를 나타냅니다 :
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_A)
dx = -2;
if (key == KeyEvent.VK_D)
dx = 2;
if (key == KeyEvent.VK_W)
dy = -2;
if (key == KeyEvent.VK_S)
dy = 2;
및 keyReleased i의 경우 전자 또한 사람이 이동하는 방법에 대한 0 에 DX와 DY의 값은 :
public void move() {
x = x + dx;
y = y + dy;
}
날이 작동하지 않는 이유를 알아내는 데 도움이 바랍니다.
'border'를 어디에 사용할 수 있습니까? –
방금 편집했습니다. 그저 부울 값이고 거짓이면 아무 일도 일어나지 않지만 사실 일 때 나는 그 사람이 움직이는 것을 막습니다. –
더 많이 보여줘야합니다. 그리고 콜리 전이 매개 변수를 취하고 부울을 반환하는지 확인하면 안됩니까? –