ゲームに一時停止機能を追加しようとしています。残念ながら、私が現在使っている方法では、プログラムは入力をもう一度も受けないので、ゲームを再開できません。Javaアプリケーションでゲームを一時停止する
ポーズボタンコール:
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());
}
}
};
ダニ:
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をを持っている。ここ
は、私が現在やっているものです毎秒ゲーム内で行動を起こす。これは、ボタンを押したときにゲームを一時停止し、もう一度ボタンを押したときに一時停止すると考えていますが、間違っています。私は間違って何をしていますか?これは、スレッドの問題のように見える
public void pause(){
data.paused = !data.paused;
}
:
は 'aTask'にはゲームロジックが含まれていますが、これは何のためですか?ゲームロジックのループはどこですか? – havexz
は?プレイヤーは0名ですか? http://www.technicalypto.com/2011/08/conways-game-of-life-in-java.htmlは、一時停止を必要とする0人のプレーヤーのゲームの例です。 1人のプレイヤーの場合は、さらにコードを表示してください。 – bragboy
なぜスリープ状態になったら、ループして一時停止状態を確認できるのか?私はあなたがまだクラッシュの場合に画面をレンダリングしたり、状態を保存しなければならないかもしれないと思いますか? –