我正在用Java做一個Snake遊戲。我有基本的功能,但是當我點擊一個按鈕時,我想暫停遊戲。但是我遇到的問題是當我點擊這個按鈕時,遊戲暫停,但是當我再次點擊時,遊戲無法識別控件。我有一個叫Init的方法,在這個上我初始化線程「Hilo」。我嘗試做第二個線程,在其中我爲該按鈕設置了一個actionPerformed,但問題仍在繼續,現在我更加困惑。這裏是我的代碼:線程問題,在Java中製作遊戲
Thread hilo; //I declared the thread
String state=""; //It is for control de state (paused or no)
Runnable hiloFor = new Runnable()
{
public void run()
{
Thread actual = Thread.currentThread();
synchronized(actual)
{
do
{
//Game instructions (there are a lot of them)
if(state.equals("paused"))
{
actual.wait();
}
}while(!option.equals("Exit"));
}
}
};
//This is my action performed where I control if it is paused
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == btnPause)
{
if(state.equals("paused"))
{
cont(); //method for reactive the thread
state="";
}else if(state.equals(""))
{
state="paused";
}
}
}
如果有人能幫助我,我會很高興,它已經變得很難對我。
你不能告訴當前線程處理任何進一步的輸入,如果你已經告訴它等待... – 2014-10-01 00:49:28
哦,你有什麼建議?我很困惑,我已經使用線程但不在遊戲中,我只想暫停遊戲並重新啓動它 – Pepe 2014-10-01 00:54:39