Как сделать мой ключ Escape паузой и возобновить игру, когда она нажата дважды? Я попытался назвать класс адаптера ключей в моем классе потоков, но он только приостанавливает игру; он не возобновляет его.Как приостановить и возобновить игру с помощью клавиши управления?
Вот код, который останавливает игру:
//the thread class
class recMove extends Thread {
JFrame b;
public boolean running=true;
//public boolean gameover=false;
public recMove(JFrame b){
this.b=b;
pauseGame();
}
public void run(){
while(running){
b.repaint();
try {
Thread.sleep(100);
} catch(InterruptedException e){}
}
}
public void pauseGame(){
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
int keyCode=e.getKeyCode();
if(keyCode==KeyEvent.VK_ESCAPE) {
running=false;
System.out.println("escape pressed");
}
if(keyCode==KeyEvent.VK_END){
System.exit(0);
}
}
});
}
}
Начните с использования 'AtomicBoolean' вместо простого' boolean'. Вы также должны иметь блокировку внутренней паузы, которая заставит основной цикл ждать в нем до тех пор, пока вы не возобновите игру, если вы не намерены ее остановить. Возможно, что-то вроде [этого, например] (http://stackoverflow.com/questions/31715950/control-of-running-thread-using-multiple-threading-concept-of-java/31716210#31716210) – MadProgrammer
спасибо большое, дон Я много знаю об этом, но я обязательно посмотрю на это. – BlueWizAngel