我正在尝试将暂停功能添加到游戏中。不幸的是,我目前使用的方法导致程序没有更多的输入,所以我无法恢复游戏。在java应用程序中暂停游戏
这是目前我在做什么:
暂停按钮呼叫:
public void pause(){
if(data.paused == true){
data.paused = false;
}
else{
data.paused=true;
while(true){
if(data.paused == true){
try{
Thread.currentThread().sleep(100);
}
catch(InterruptedException ie){
System.out.println(ie);
}
}
else
break;
}
data.paused=false;
}
return;
然后,我有一个TimerTask,我不得不面对:
class aTask extends java.util.TimerTask {
protected Data data;
public aTask(Data d) { data = d; }
public void run() {
try{
if(data.paused){
try{
Thread.currentThread().sleep(100);
}
catch(InterruptedException ie){
System.out.println(ie);
}
}
else
data.tick();
}
catch(ATCGameOverException e){
data.gameOver(e.getMessage());
}
}
};
那里剔每秒都会在游戏中引发一个动作。
我会认为这会让游戏在按下按钮时暂停,然后再按下按钮时取消暂停,但是我会错误的。我究竟做错了什么?
是'aTask'包含游戏逻辑,如果不是这是什么?游戏逻辑循环在哪里? – havexz
这是一个0人游戏? http://www.technicalypto.com/2011/08/conways-game-of-life-in-java.html是一个需要暂停的0人游戏例子。如果其单人玩家,请展示更多代码。 – bragboy
为什么试着睡觉,什么时候可以循环检查暂停状态?我猜你仍然可能需要渲染屏幕或保存某种状态以防崩溃? –