2011-09-26 93 views
0

我正在創建一個帶有1個人類播放器和3個電腦播放器的黑桃應用程序。android - 等待用戶輸入

我遇到的問題是,遊戲必須按順序發生(順時針),我需要我的程序等待玩家輸入。我不能使用wait()和notify()。我已經嘗試while循環來檢查用戶是否選擇了卡,但是這些卡會阻止程序運行。我已經嘗試過遞歸方法,直到玩家選擇了一張牌纔會返回任何東西。這也行不通。那麼我該怎麼做?我卡住了。

我的方法是這樣的(而忽略了非相關的代碼)

private void game(){ 
    while(there are more tricks to be played) 
     while(each player has not played){ 
     if(human turn) 
      get input from player 
     else 
      computer plays 
     } 
} 

回答

1

你可以嘗試添加事件處理程序。每次用戶選擇一張卡時,它都會嘗試激發一個事件。

+0

看起來這就是我正在做的。我幾乎重新發明我的代碼,使用布爾和處理程序來完成工作。謝謝。 – JLK

1

試試這個。

創建一個線程,並在威脅電話sleep(1000);

1

也許你應該改變一點點您的遊戲控制器。不要等待任何事情,讓你的程序不斷地畫屏幕。如果用戶什麼都不輸入,同一個屏幕一直都在繪製。一旦他按下一個鍵(或點擊一張卡片或任何你有的事件),只需修改繪畫方法的參數(要繪製的屏幕)即可。因此,您將分隔繪畫屏幕和輸入處理。這是一種常見的技術,稱爲MVC模型。

也許這將幫助(這是我的遊戲創建博客,裏面的鏈接也是有幫助的): http://m3ph1st0s.blogspot.ro/2012/12/create-games-with-libgdx-library-in.html

你並不需要去適應所有的遊戲遊戲描述在那裏,只有技術從繪畫分離輸入。作爲一種通用技術,你不應該有輸入決定繪畫。

希望它有幫助。不要猶豫,要求進一步的幫助。