2011-06-13 30 views
1

我正在寫一個簡單的基於回合的Android遊戲,它允許玩家對電腦(即在這種情況下的電話)進行遊戲。如何處理電腦播放器移動

在遊戲過程中,讓遊戲更新計算機對玩家的動作是一種好的/推薦的方式?我能想到的一種方法是讓課程保持電腦播放器可見(將實例傳遞給AI播放器實例)並直接更新它,但這看起來不是一種「好」的方法。有時可能需要時間來計算下一步行動。同樣在將來,如果我們想要結合網絡遊戲,它不應該涉及重大處理來處理來自網絡播放器的更新。

任何幫助,這是非常讚賞。

+0

感謝IZI_Shadow_IZI上的AsyncTask的建議。然而我希望有更多的選擇(可以通過評估來確定最佳選擇)。真的很感謝在這方面的任何額外的建議。 – 2011-07-05 16:57:56

回答

1

如果計算可能需要很長時間,那麼我建議您查看AsyncTask,您可以通知玩家計算機正在移動,然後彈出一個進度對話框,通知用戶其他玩家正在做什麼?這是不是你想要的?這裏有一些資源:

Android的文檔:http://developer.android.com/reference/android/os/AsyncTask.html

異步模板:http://jyro.blogspot.com/2009/11/android-asynctask-template.html

+0

謝謝。我正在研究AsyncTask(截至目前爲止,在我的頭部纏繞一些麻煩:))。快速的問題,當我們使用AsyncTask時,我認爲我們需要設計後臺計算,就好像它會在完成時向UI返回結果一樣嗎?而不是彷彿是一個單獨的任務,將在計算後發送答覆? – 2011-06-14 07:19:02

+0

我剛發現這可能會有幫助嗎? http://stackoverflow.com/questions/6053602/what-arguments-are-passed-into-asynctaskarg1-arg2-arg3/6053673#6053673 – 2011-06-14 12:44:25

+0

我有一個工作的AsyncTask實現,我現在用它來調用AI播放器,但想要一些關於優秀設計的建議。我基本上需要通知AI 4個動作(RESET,GET_NEXT_MOVE,UPDATE_USER_MOVE和GAME_OVER)。如果所有這些4都是在單個AsyncTask類中處理的,還是我們需要爲每個操作分別設置4個類?無論哪種情況,有沒有辦法確保它們不能同時運行? – 2011-06-22 13:28:18

相關問題