2013-08-19 105 views
0

目前我正在嘗試在java中創建一個戰艦遊戲。兩名玩家連接到服務器,放置在那裏運送並開始遊戲。我創建了一個服務器和一個客戶端。我不知道如何將一名球員的投球座標從一名球員轉移到另一名球員。船舶座標存儲在客戶端的List中。哪一個是玩家溝通的最佳解決方案?也許玩家的座標應該發送到服務器,第二個玩家會在服務器上檢查他們?或者我應該保持玩家發送給其他玩家的想法並獲得結果?也許有人會有更好的主意。java中的戰列艦遊戲建議

+0

我會想到將所有職位發送到服務器,並讓它向雙方發送「命中」和「錯過」報告,以迴應每次「發射」。您可以使用寧靜的Web服務並使用諸如jaxb之類的東西發送數據 –

回答

1

你現在用什麼溝通?既然你用套接字問題,我猜你正在使用普通的IP套接字。也許你看看ar RMI。這很容易設置,你可以使用它幾乎像一個普通的Java調用。

這樣更新播放器的鏡頭只是調用方法的問題。

2

如果你不想讓人作弊,你將所有的座標數據保存在服務器上。客戶端請求來自服務器的座標數據。

您的客戶端向服務器發送消息,服務器提供響應。這是您作爲玩家知道服務器仍然連接的唯一方式。

消息的內容和響應的內容取決於您。

2

啓動後,將船協調員發送到服務器。 (不要將它們存儲在客戶端上,戰艦遊戲不需要超高速,所以它在服務器上更好。)然後,讓服務器嚮應該開始的客戶端發送一個「輪到你」的分組。客戶選擇一個拍攝位置,並將其傳送到服務器。服務器檢查是否有船或水,並將這些數據發送給兩個客戶端。下一回合包,等等...

希望它能幫助:)

PS:我會用KryoNet庫! https://code.google.com/p/kryonet/