版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 一、需求分析</b></p><p> 每個(gè)人都玩過(guò)坦克大戰(zhàn)這個(gè)游戲,本程序完成的功能就是平時(shí)所玩的游戲中所實(shí)現(xiàn)的一些基本功能。并且在單機(jī)版的基礎(chǔ)上改寫(xiě)成網(wǎng)絡(luò)版</p><p><b> 具體游戲要求:</b></p><p> ● 玩家控制的坦克能夠四處移動(dòng)</p>&l
2、t;p> ● 玩家控制的坦克能夠打擊敵人</p><p> ● 敵人坦克能夠任意移動(dòng)</p><p> ● 坦克被摧毀能夠模擬爆炸</p><p> ● 多個(gè)玩家(即客戶端)通過(guò)服務(wù)器端進(jìn)行互動(dòng)。</p><p> 二、java文件對(duì)應(yīng)的功能。</p><p> Tank.java </p>
3、;<p> 主要是包括Tank的相關(guān)信息;</p><p> 以及基本方法,以及對(duì)應(yīng)的按鍵處理</p><p> public void keyPressed(KeyEvent e) 按鍵響應(yīng)函數(shù)</p><p> private void locateDirection() 確定當(dāng)前的坦克的位置</p><p>
4、; private Missile fire() tank發(fā)射子彈</p><p> public boolean isLive() 檢測(cè)坦克是否還活著</p><p> public void setLive(boolean live) 設(shè)定坦克的生死狀態(tài)</p><p> Tankclient.Java </p><p>
5、 主要是客戶端登陸的功能,具體通過(guò)套節(jié)字實(shí)現(xiàn)。</p><p> class ConnDialog extends Dialog</p><p> 此類主要實(shí)現(xiàn)通過(guò)對(duì)話框的形式來(lái)連接登錄服務(wù)器。</p><p> 客戶機(jī)自動(dòng)實(shí)現(xiàn)修改udPport的功能。</p><p> TankDeadMsg.Java</p><
6、;p> 本文件主要是向所有客戶機(jī)包括服務(wù)器發(fā)送死亡坦克的信息。</p><p> 這里主要用到的是多態(tài)機(jī)制。(Tankdeadmsg繼承msg接口)</p><p> public void parse(DataInputStream dis)</p><p><b> 主要功能:</b></p><p>
7、 * 分析接收到的消息數(shù)據(jù)</p><p> * 接收到的消息數(shù)據(jù)的輸入流</p><p> public void send(DatagramSocket ds, String IP, int udpPort)</p><p><b> 主要功能:</b></p><p> 發(fā)送死亡坦克的相關(guān)的消息</
8、p><p> *通過(guò)該socket發(fā)送數(shù)據(jù)</p><p><b> *數(shù)據(jù)的目標(biāo)IP</b></p><p><b> *數(shù)據(jù)的目標(biāo)端口</b></p><p> TankMoveMsg.java</p><p> 本文件主要是向所有客戶機(jī)包括服務(wù)器發(fā)送坦克移動(dòng)的相關(guān)
9、息。這里主要用到的是多態(tài)機(jī)制。(Tankmovemsg繼承msg接口)</p><p> public TankMoveMsg(int id, int x, int y, Dir dir, Dir ptDi)r</p><p> 根據(jù)坦克相關(guān)屬性構(gòu)建消息</p><p> public void parse(DataInputStream dis)</p
10、><p><b> 主要功能:</b></p><p> 分析接收到的消息數(shù)據(jù)</p><p> 接收到的消息數(shù)據(jù)的輸入流</p><p> TankNewMsg.Java</p><p> 本文件主要是向所有客戶機(jī)包括服務(wù)器發(fā)送坦克誕生的信息。</p><p>
11、并在各個(gè)客戶端顯示出來(lái)新誕生的坦克,</p><p> 這里主要用到的是多態(tài)機(jī)制。(TankNewmsg繼承msg接口)</p><p> public void parse(DataInputStream dis)</p><p><b> 主要功能:</b></p><p> * 分析接收到的消息數(shù)據(jù)<
12、/p><p> * 接收到的消息數(shù)據(jù)的輸入流</p><p> public void send(DatagramSocket ds, String IP, int udpPort)</p><p><b> 主要功能:</b></p><p> 發(fā)送死亡坦克的相關(guān)的消息</p><p>
13、*通過(guò)該socket發(fā)送數(shù)據(jù)</p><p><b> *數(shù)據(jù)的目標(biāo)IP</b></p><p><b> *數(shù)據(jù)的目標(biāo)端口</b></p><p> TankServer.Java</p><p> 本件主要是產(chǎn)生一個(gè)服務(wù)器。創(chuàng)建兩個(gè)線程。一個(gè)是tcp監(jiān)聽(tīng)的線程。另一個(gè)是udp的監(jiān)聽(tīng)線程。
14、Tcp線程主要是為了客戶機(jī)的聯(lián)機(jī)(服務(wù)器)使用。</p><p> Udp主要是用途在于發(fā)送和接收包(即游戲相關(guān)的信息)。</p><p><b> 主要功能:</b></p><p><b> 啟動(dòng)服務(wù)器</b></p><p> public void start()</p>
15、<p><b> dir.JAVA</b></p><p> 本文件主要就是坦克移動(dòng)時(shí)所有可能出現(xiàn)的方向。</p><p> Explode.Java</p><p> 本文件主要是為了產(chǎn)生爆炸效果增加游戲的趣味性。</p><p> Missle.java</p><p>
16、; 本文件主要是關(guān)于子彈的一些方法,例如:</p><p> public boolean hitTank(Tank t)</p><p> 檢測(cè)子彈是否撞到坦克</p><p><b> T:被檢測(cè)的坦克</b></p><p> 如果撞到返回true,否則返回false</p><p&g
17、t; MissleDeadmsg.java</p><p> 本文件主要是向所有客戶機(jī)包括服務(wù)器發(fā)送死亡子彈的信息。</p><p> 這里主要用到的是多態(tài)機(jī)制。(missledeadmsg繼承msg接口)</p><p> public void parse(DataInputStream dis)</p><p> 分析接收到的
18、消息數(shù)據(jù)</p><p> * @param dis 接收到的消息數(shù)據(jù)的輸入流</p><p> public void send(DatagramSocket ds, String IP, int udpPort) </p><p><b> * 發(fā)送相關(guān)的消息</b></p><p> * @param ds
19、 通過(guò)該socket發(fā)送數(shù)據(jù)</p><p> * @param IP 數(shù)據(jù)的目標(biāo)IP</p><p> * @param udpPort 數(shù)據(jù)的目標(biāo)端口</p><p> MissleNewMsg.Java</p><p> 本文件主要是向所有客戶機(jī)包括服務(wù)器發(fā)送子彈誕生的信息。</p><p> 并在各個(gè)
20、客戶端顯示出來(lái)新誕生的子彈,這里主要用到的是多態(tài)機(jī)制。(TankNewmsg繼承msg接口)</p><p> public void send(DatagramSocket ds, String IP, int udpPort)</p><p><b> * 發(fā)送相關(guān)的消息</b></p><p> * @param ds 通過(guò)該soc
21、ket發(fā)送數(shù)據(jù)</p><p> * @param IP 數(shù)據(jù)的目標(biāo)IP</p><p> * @param udpPort 數(shù)據(jù)的目標(biāo)端口</p><p> public void parse(DataInputStream dis)</p><p> * 分析接收到的消息數(shù)據(jù)</p><p> * @pa
22、ram dis 接收到的消息數(shù)據(jù)的輸入流</p><p><b> Msg.java</b></p><p> 本文件主要是一個(gè)接口類。</p><p> 里面有兩個(gè)沒(méi)有實(shí)現(xiàn)的方法,</p><p> public void send(DatagramSocket ds, String IP, int udpPo
23、rt);</p><p><b> * 發(fā)送數(shù)據(jù)</b></p><p> * @param ds</p><p> * @param IP</p><p> * @param udpPort</p><p> public void parse(DataInputStream d
24、is);</p><p><b> * 接收并處理數(shù)據(jù)</b></p><p> * @param dis</p><p><b> 三 模塊分析圖:</b></p><p> 1.對(duì)于聯(lián)網(wǎng)模式的整體分析</p><p> 2.對(duì)于單個(gè)坦克來(lái)說(shuō)的功能實(shí)現(xiàn)</p
25、><p><b> 四、運(yùn)行效果</b></p><p><b> 主界面</b></p><p><b> 客戶機(jī)登陸對(duì)話框:</b></p><p><b> 一個(gè)坦克的效果圖</b></p><p><b>
26、多個(gè)坦克的效果圖</b></p><p> 最終紅色坦克獲勝,游戲結(jié)束</p><p><b> 五:成員分工</b></p><p> 張玉利:tank.java、tankclient.java、tankserver.java</p><p> 張杰: missleDeadMsg.java、mis
27、sleNewMsg.java、</p><p> 李瑞琳:tankDeadMsg.java.java、tankNewMsg.java、TankMoveMsg.java、</p><p> 朱凱強(qiáng):netclient.java、missle.java、Msg.java</p><p> 楊達(dá)允:dir.java、Explode.java</p>&
28、lt;p><b> 六:參考資料</b></p><p> 袁然、鄭自國(guó)、鄒豐義 著 java案例開(kāi)發(fā)集錦 電子工業(yè)出版社 2005.9</p><p> 孫全黨、王吳迪、趙楓朝 Java程序設(shè)計(jì)應(yīng)用教程 電子工業(yè)出版社 2006.2</p><p> [美]Rogers Cadenhead著、梅興文 譯 Java編程入門經(jīng)典(第
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java坦克大戰(zhàn)課程設(shè)計(jì)報(bào)告
- java坦克大戰(zhàn)課程設(shè)計(jì)報(bào)告
- java坦克大戰(zhàn)課程設(shè)計(jì)報(bào)告.doc
- 坦克大戰(zhàn)--java課程設(shè)計(jì)
- java關(guān)于坦克大戰(zhàn)的課程設(shè)計(jì)報(bào)告
- 基于java坦克大戰(zhàn)課程設(shè)計(jì)
- java課程設(shè)計(jì)---基于java的坦克大戰(zhàn)
- java課程設(shè)計(jì)----基于java的坦克大戰(zhàn)
- java語(yǔ)言程序課程設(shè)計(jì)-- 坦克大戰(zhàn)
- 課程設(shè)計(jì)報(bào)告--坦克大戰(zhàn)
- java課程設(shè)計(jì)坦克大戰(zhàn)游戲(含代碼)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-- 坦克大戰(zhàn)游戲設(shè)計(jì)(java版)
- 新世紀(jì)坦克大戰(zhàn)課程設(shè)計(jì)報(bào)告
- java版坦克大戰(zhàn)
- java坦克大戰(zhàn)畢業(yè)設(shè)計(jì)論文
- 基于java語(yǔ)言的坦克大戰(zhàn)
- 基于java的游戲坦克大戰(zhàn)
- 基于java語(yǔ)言的坦克大戰(zhàn)
- 基于java的坦克大戰(zhàn)游戲的設(shè)計(jì)與實(shí)現(xiàn) 開(kāi)題報(bào)告
- 基于java的坦克大戰(zhàn)游戲的設(shè)計(jì)與實(shí)現(xiàn)【開(kāi)題報(bào)告】
評(píng)論
0/150
提交評(píng)論