第08章-局域網(wǎng)坦克大戰(zhàn)_第1頁
第08章-局域網(wǎng)坦克大戰(zhàn)_第2頁
第08章-局域網(wǎng)坦克大戰(zhàn)_第3頁
第08章-局域網(wǎng)坦克大戰(zhàn)_第4頁
第08章-局域網(wǎng)坦克大戰(zhàn)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

JavaSE6項目開發(fā)培訓(xùn)視頻局域網(wǎng)坦克大戰(zhàn)

課程安排開發(fā)背景系統(tǒng)分析系統(tǒng)設(shè)計游戲設(shè)計框架分析

服務(wù)器端框架設(shè)計

服務(wù)器線程與代理線程的開發(fā)

客戶端框架設(shè)計

客戶端代理線程的開發(fā)

課程安排(續(xù))公共類的開發(fā)

繪制線程的開發(fā)

服務(wù)器端游戲主面板的開發(fā)與設(shè)計知識點(diǎn)匯總

章末總結(jié)開發(fā)背景隨著游戲產(chǎn)業(yè)的迅速發(fā)展,新游戲一個接一個的不斷出現(xiàn),游戲的類型也是多種多樣,如競技類、對戰(zhàn)類、合作類、角色扮演類等等。如果讀者是學(xué)生的話也許會注意到,宿舍里玩的合作類小型游戲大多是兩個人在一臺機(jī)器上,如果想不在一臺機(jī)器上,則可能需要上網(wǎng)尋求第三方服務(wù)器的支持。

系統(tǒng)分析

1、對連接的要求游戲可以分成服務(wù)器端和客戶端。

服務(wù)器端可以自行輸入服務(wù)端口號及玩家姓名即可啟動服務(wù)器,等待客戶端連接

。客戶端可以通過確定的IP地址及端口號連接到服務(wù)器。

連接成功后都應(yīng)該有相應(yīng)的提示信息。

系統(tǒng)分析(續(xù))2、對游戲中各種狀況的要求

游戲的開始由服務(wù)器決定??蛻舳思胺?wù)器端在游戲中都可以隨時退出游戲和停止服務(wù),但必須有相應(yīng)的提示信息。

游戲中應(yīng)該有生命值剩余情況的提示信息

有得分信息

系統(tǒng)設(shè)計系統(tǒng)分析確定了本系統(tǒng)的最終目標(biāo),系統(tǒng)結(jié)構(gòu)如下圖所示:局域網(wǎng)坦克大戰(zhàn)服務(wù)器端客戶端建立游戲開始游戲繪制游戲畫面接收主機(jī)數(shù)據(jù)控制主機(jī)坦克控制電腦坦克控制子彈繪制游戲畫面向客戶端傳遞數(shù)據(jù)加入游戲控制副機(jī)坦克接受客戶端數(shù)據(jù)系統(tǒng)預(yù)覽這一節(jié)將對本系統(tǒng)各功能進(jìn)行演示。游戲設(shè)計框架分析游戲中開發(fā)的類比較多,為了讓讀者更好的理解,下面將分成三大塊進(jìn)行介紹:公共類、服務(wù)器端類、客戶端類,下面將逐一進(jìn)行簡要介紹。關(guān)于這些類的詳細(xì)代碼及介紹在后面會相繼介紹

游戲設(shè)計框架分析(續(xù))1、公共類簡介

坦克類Tank.java

該類包含著坦克的所有相關(guān)屬性信息,同時也包括坦克的一些方法,如前進(jìn)的方法,繪制的方法,返回其所在矩形的方法等等。

子彈類Bullet.java。

該類包含著關(guān)于子彈的相關(guān)信息,同時也包含其一些游戲中用到的重要方法,如移動的方法,繪制子彈的方法等

地圖類WarMap.java。 該類包含著地圖的相關(guān)信息,其實這里的地圖就一個簡單的二維數(shù)組

游戲設(shè)計框架分析(續(xù))2、服務(wù)器端類

服務(wù)器主框架類TankServer.java。

該類是服務(wù)器端的主類,用戶通過運(yùn)行該類進(jìn)入游戲,通過該類建立游戲及控制游戲子彈類Bullet.java。

服務(wù)器線程類ServerThread.java。 服務(wù)器通過該線程類等待客戶端的連接,并且連接到來后為其提供服務(wù)線程,即服務(wù)器代理線程,該線程下面會進(jìn)行簡單介紹

服務(wù)器代理線程ServerAgentThread.java

。 該線程用于接收客戶端傳來的信息,根據(jù)信息執(zhí)行不同的動作,如客戶機(jī)加入和離開的消息,改變游戲模型的消息等。

游戲設(shè)計框架分析(續(xù))2、服務(wù)器端類(續(xù))服務(wù)器端游戲主面板ServerWar.java。

該類實際上是服務(wù)器端最主要的一個類,該類不僅維護(hù)著服務(wù)器端的游戲模型,擁有改變模型的相應(yīng)方法,而且該類還要將游戲模型的變化及時的傳遞給客戶端。服務(wù)器端繪制線程PaintThread.java。

該線程主要用于控制游戲的定時重繪,將游戲模型及時的展現(xiàn)在用戶面前

游戲設(shè)計框架分析(續(xù))3、客戶端類

客戶端主框架類TankClient.java

該類是客戶端的主類,客戶端通過運(yùn)行該類進(jìn)入游戲,連接主機(jī)并控制游戲客戶端代理線程ClientAgentThread.java

。 該類負(fù)責(zé)接收服務(wù)器端傳來的信息,并跟據(jù)信息的內(nèi)容執(zhí)行不同的動作,如根據(jù)信息及時的改變游戲模型,或者是主機(jī)離開的提示信息等等。

游戲設(shè)計框架分析(續(xù))3、客戶端類(續(xù))客戶端游戲主面板ClientWar.java

。

該類是客戶端最主要的一個類,客戶端代理線程就是通過調(diào)用這個類改變游戲模型,同時該類還負(fù)責(zé)將客戶端的變化及時地傳遞給服務(wù)器端。

客戶端繪制線程CPaintThread.java。

該線程與服務(wù)器端的繪制線程完成同樣的任務(wù),就是定時的重繪游戲畫面,將模型的變化及時的展現(xiàn)給玩家。

游戲設(shè)計框架分析(續(xù))游戲框架圖

游戲設(shè)計框架分析(續(xù))服務(wù)器端框架設(shè)計

從這一節(jié)開始將正式進(jìn)入游戲代碼的開發(fā)過程,游戲的開發(fā)前期可能很枯燥,希望讀者能夠堅持度過這一關(guān),后面會越來越有趣。服務(wù)器線程與代理線程的開發(fā)

通過上面幾節(jié)的介紹,讀者應(yīng)該了解了服務(wù)器線程的作用,該線程主要就是等待客戶端的連接,并為連接的客戶端分配一個服務(wù)器代理線程,該線程應(yīng)該從服務(wù)器建立游戲開始運(yùn)行

客戶端框架設(shè)計

前面幾節(jié)已經(jīng)完成了服務(wù)器端框架的開發(fā),如果沒有錯誤的話,服務(wù)器已經(jīng)可以接收客戶端的連接了,為了驗證服務(wù)器的正確性,從本節(jié)開始將暫時進(jìn)入客戶端的開發(fā)

客戶端代理線程的開發(fā)

客戶端已經(jīng)可以連接到服務(wù)器了,但此時雙方仍然不能夠進(jìn)行通話,主要原因是客戶端這邊還沒有開發(fā)接收信息的類,即客戶端代理線程

公共類的開發(fā)

既然是坦克大戰(zhàn),當(dāng)然就離不開坦克,離不開子彈,再有就是地圖,下面將開始進(jìn)行這些公共類的開發(fā)。繪制線程的開發(fā)

下面主要介紹游戲中用于控制重繪的兩個輔助線程類的開發(fā),即前面介紹的服務(wù)器端繪制線程PaintThread.java和客戶端繪制線程CPaintThread.java,這兩個類的作用是定時的對主窗體進(jìn)行重繪,更新視圖。

知識點(diǎn)匯總

游戲框架的開發(fā)知識:每一類型的游戲都有一套開發(fā)的框架,本游戲當(dāng)然也不例外,開發(fā)者應(yīng)該在以后的學(xué)習(xí)中多多研究這些框架,對其靈活使用。這樣對于類似的游戲可以進(jìn)行熟練的開發(fā)

網(wǎng)絡(luò)套接字的開發(fā)方法:這是本章的一個最重要的知識點(diǎn),也是作為Java開發(fā)者必須熟練掌握的,因為現(xiàn)在基于網(wǎng)絡(luò)的應(yīng)用非常多,而且C/S架構(gòu)的應(yīng)用在現(xiàn)在仍然占據(jù)著非常重要的地位

知識點(diǎn)匯總游戲模型的設(shè)計方法,游戲中各個元素都是一個類,這也是面向?qū)ο蟮拈_發(fā)的一種具體表現(xiàn),游戲中的坦克、子彈、地圖都是一個,這樣有利于更好的管理

游戲通信方法的相關(guān)知識,網(wǎng)絡(luò)游戲必然要涉及到信息的傳遞,傳遞的方案很多,本游戲是通過字符串進(jìn)行傳遞的

章末總結(jié)

通過前面的學(xué)習(xí),讀者應(yīng)該對游戲的開發(fā)有了一定的了解,掌握了一些對實時性要求的解決方案,通過這個網(wǎng)絡(luò)游戲的開發(fā),讀者應(yīng)該能夠熟練的進(jìn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論