0
간단한 Java
게임을 작성 중이며 일시 중지/다시 시작 기능을 추가하는 동안 몇 가지 문제가 발생했습니다.간단한 Java 2D 게임 - 게임 다시 시작
내 주요 게임 루프는 다음과 같습니다
@Override
public void run() {
try {
while (true) {
if (!isPaused) {
Thread.currentThread().sleep(5);
diamondSpawner();
collisionDetector();
repaint();
} else {
}
}
} catch (InterruptedException e) {
}
}
이 또한 내가 게임을 일시 정지 'P'를 눌러 사용자를 기다립니다 메인 클래스에 KeyListener
을 추가했습니다. 불행하게도 문제는 KeyListener
이 일시 중지 된 상태에서 키를 수신하지 않는 것입니다. 어떻게들을 수 있습니까? 내 문제를 해결 MadProgrammer
this.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_P) {
isPaused = !isPaused;
}
helicopter.move(evt);
}
});
왜 듣지 않습니까? 당신이 이벤트 디스 패칭 스레드를 차단하고있는 것처럼 들리 겠지만, 문제를 증명하는 실행 가능한 예제를 제공하는 것을 고려해보십시오. 다른 것들은 추측 할 수 있습니다 ... – MadProgrammer
isPaused 변수를 휘발성으로 만들거나 AtomicBoolean을 사용해야 할 수도 있습니다. – MadProgrammer
@MadProgrammer 감사합니다. 변수 도움 :) – Simon