2012-03-30 62 views
0

我最近一直在探索我自己的想法,製作一個小型的多人遊戲,我的幾個朋友可以玩的只是爲了它的樂趣。我知道所有的基礎知識,對Java更多一點,我會認爲自己是java的中間人。從簡單的多人JAVA遊戲中的套接字開始

最近,我一直在學習如何加載小精靈,雙緩衝,關鍵聽衆,鼠標聽衆等,使一個小側滾動2D槍遊戲。我對這些類別有了很好的理解,但現在我已經到了需要了解套接字的一部分,並且能夠在線獲得該遊戲。

我見過關於服務器和客戶端的製作地點的小教程,以及何時打開客戶端會向服務器發送一條消息(字符串),例如「Orange」,服務器可以理解,並且打印出來。我可以通過查看它來理解代碼(如果被要求重建從我自己的知識(斜線內存)將無法,因爲我不知道套接字)。

現在我的主要問題是,我該如何開始做這樣的事情,當這樣做時,如何註冊移動,例如,從一個客戶端到服務器,然後出現在所有連接的客戶端上在遊戲中,還有子彈,碰撞事件,敵人等等。我似乎找不到任何好幫手,通過創建一個套接字,真正向你展示如何做到這一點,做所有基本連接的東西(我不知道),然後更新遊戲狀態,如果我可以稱之爲。所以總的來說,我怎麼能基本上有一個地面,兩個玩家(以精靈爲代表),一些敵人(AI)和子彈能夠殺死敵人,以及敵人發射的能力和殺死玩家(用戶),並讓服務器和客戶端脫離它?哦,還有一件事,我希望能夠讓玩家選擇一個名字,並且這個名字可以說會在遊戲中的角色之上浮動......如果甚至可能有一點點建立在聊天功能,但我可能會得到先進的那一個。

如果有人能夠至少指向我正確的方向,或圍繞這一切解釋基礎知識,那就太棒了!謝謝!

-Dan

我經歷了很多,如果我道歉那裏,我只是想解釋什麼即時尋找到能夠做到

+1

好的,你認爲那很好。但現在,如果您需要代碼幫助,請嘗試一下並返回此處。網上有很多關於套接字的教程。 – Snicolas 2012-03-30 09:06:50

+0

從[套接字Java教程](http://docs.oracle.com/javase/tutorial/networking/sockets/)開始。 – assylias 2012-03-30 09:15:43

+0

哇,一口氣(用一些段落)! – 2012-03-30 09:22:08

回答

1

你將需要的是一個多線程的服務器,這對於listenes進來的來自玩家的數據,然後相應更新。客戶端還需要線程化並偵聽來自服務器的數據,以便更新其他玩家的移動等。因此,請先閱讀套接字和線程。您希望服務器爲每個連接的客戶端創建一個線程。

然後通過向服務器發送消息進行第一次嘗試,該服務器將相同的消息回顯給客戶端。這將需要你使用線程和套接字,並且是一個很好的開始。

稍後您將使用相同的tequniqe(客戶端將其移動到服務器,並且服務器向所有其他客戶端迴應移動,以便他們可以在本地更新更改)或者,客戶端將移動服務器,服務器在本地更新移動。這將要求客戶端獲得存儲在服務器上的所有對象的x和y座標。在滯後的情況下這可能會更好(從未編程一個遊戲,所以不確定哪種方法最好)。

因此,您將在服務器和客戶端上都有無限循環,每個迭代獲取/發送每個對象的x和y軸並使用它來重繪/處理命中等。哪個邏輯在哪個循環取決於你選擇的設計。