版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 一、需求分析</b></p><p> 每個人都玩過坦克大戰(zhàn)這個游戲,本程序完成的功能就是平時所玩的游戲中所實現(xiàn)的一些基本功能。并且在單機版的基礎(chǔ)上改寫成網(wǎng)絡(luò)版</p><p><b> 具體游戲要求:</b></p><p> ● 玩家控制的坦克能夠四處移動</p>&l
2、t;p> ● 玩家控制的坦克能夠打擊敵人</p><p> ● 敵人坦克能夠任意移動</p><p> ● 坦克被摧毀能夠模擬爆炸</p><p> ● 多個玩家(即客戶端)通過服務(wù)器端進行互動。</p><p> 二、java文件對應(yīng)的功能。</p><p> Tank.java </p>
3、;<p> 主要是包括Tank的相關(guān)信息;</p><p> 以及基本方法,以及對應(yīng)的按鍵處理</p><p> public void keyPressed(KeyEvent e) 按鍵響應(yīng)函數(shù)</p><p> private void locateDirection() 確定當前的坦克的位置</p><p>
4、; private Missile fire() tank發(fā)射子彈</p><p> public boolean isLive() 檢測坦克是否還活著</p><p> public void setLive(boolean live) 設(shè)定坦克的生死狀態(tài)</p><p> Tankclient.Java </p><p>
5、 主要是客戶端登陸的功能,具體通過套節(jié)字實現(xiàn)。</p><p> class ConnDialog extends Dialog</p><p> 此類主要實現(xiàn)通過對話框的形式來連接登錄服務(wù)器。</p><p> 客戶機自動實現(xiàn)修改udPport的功能。</p><p> TankDeadMsg.Java</p><
6、;p> 本文件主要是向所有客戶機包括服務(wù)器發(fā)送死亡坦克的信息。</p><p> 這里主要用到的是多態(tài)機制。(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> *通過該socket發(fā)送數(shù)據(jù)</p><p><b> *數(shù)據(jù)的目標IP</b></p><p><b> *數(shù)據(jù)的目標端口</b></p><p> TankMoveMsg.java</p><p> 本文件主要是向所有客戶機包括服務(wù)器發(fā)送坦克移動的相關(guān)
9、息。這里主要用到的是多態(tài)機制。(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> 本文件主要是向所有客戶機包括服務(wù)器發(fā)送坦克誕生的信息。</p><p>
11、并在各個客戶端顯示出來新誕生的坦克,</p><p> 這里主要用到的是多態(tài)機制。(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、*通過該socket發(fā)送數(shù)據(jù)</p><p><b> *數(shù)據(jù)的目標IP</b></p><p><b> *數(shù)據(jù)的目標端口</b></p><p> TankServer.Java</p><p> 本件主要是產(chǎn)生一個服務(wù)器。創(chuàng)建兩個線程。一個是tcp監(jiān)聽的線程。另一個是udp的監(jiān)聽線程。
14、Tcp線程主要是為了客戶機的聯(lián)機(服務(wù)器)使用。</p><p> Udp主要是用途在于發(fā)送和接收包(即游戲相關(guān)的信息)。</p><p><b> 主要功能:</b></p><p><b> 啟動服務(wù)器</b></p><p> public void start()</p>
15、<p><b> dir.JAVA</b></p><p> 本文件主要就是坦克移動時所有可能出現(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> 檢測子彈是否撞到坦克</p><p><b> T:被檢測的坦克</b></p><p> 如果撞到返回true,否則返回false</p><p&g
17、t; MissleDeadmsg.java</p><p> 本文件主要是向所有客戶機包括服務(wù)器發(fā)送死亡子彈的信息。</p><p> 這里主要用到的是多態(tài)機制。(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、 通過該socket發(fā)送數(shù)據(jù)</p><p> * @param IP 數(shù)據(jù)的目標IP</p><p> * @param udpPort 數(shù)據(jù)的目標端口</p><p> MissleNewMsg.Java</p><p> 本文件主要是向所有客戶機包括服務(wù)器發(fā)送子彈誕生的信息。</p><p> 并在各個
20、客戶端顯示出來新誕生的子彈,這里主要用到的是多態(tài)機制。(TankNewmsg繼承msg接口)</p><p> public void send(DatagramSocket ds, String IP, int udpPort)</p><p><b> * 發(fā)送相關(guān)的消息</b></p><p> * @param ds 通過該soc
21、ket發(fā)送數(shù)據(jù)</p><p> * @param IP 數(shù)據(jù)的目標IP</p><p> * @param udpPort 數(shù)據(jù)的目標端口</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> 本文件主要是一個接口類。</p><p> 里面有兩個沒有實現(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.對于聯(lián)網(wǎng)模式的整體分析</p><p> 2.對于單個坦克來說的功能實現(xiàn)</p
25、><p><b> 四、運行效果</b></p><p><b> 主界面</b></p><p><b> 客戶機登陸對話框:</b></p><p><b> 一個坦克的效果圖</b></p><p><b>
26、多個坦克的效果圖</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> 朱凱強:netclient.java、missle.java、Msg.java</p><p> 楊達允:dir.java、Explode.java</p>&
28、lt;p><b> 六:參考資料</b></p><p> 袁然、鄭自國、鄒豐義 著 java案例開發(fā)集錦 電子工業(yè)出版社 2005.9</p><p> 孫全黨、王吳迪、趙楓朝 Java程序設(shè)計應(yīng)用教程 電子工業(yè)出版社 2006.2</p><p> [美]Rogers Cadenhead著、梅興文 譯 Java編程入門經(jīng)典(第
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java坦克大戰(zhàn)課程設(shè)計報告
- java坦克大戰(zhàn)課程設(shè)計報告
- java坦克大戰(zhàn)課程設(shè)計報告.doc
- 坦克大戰(zhàn)--java課程設(shè)計
- java關(guān)于坦克大戰(zhàn)的課程設(shè)計報告
- 基于java坦克大戰(zhàn)課程設(shè)計
- java課程設(shè)計---基于java的坦克大戰(zhàn)
- java課程設(shè)計----基于java的坦克大戰(zhàn)
- java語言程序課程設(shè)計-- 坦克大戰(zhàn)
- 課程設(shè)計報告--坦克大戰(zhàn)
- java課程設(shè)計坦克大戰(zhàn)游戲(含代碼)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-- 坦克大戰(zhàn)游戲設(shè)計(java版)
- 新世紀坦克大戰(zhàn)課程設(shè)計報告
- java版坦克大戰(zhàn)
- java坦克大戰(zhàn)畢業(yè)設(shè)計論文
- 基于java語言的坦克大戰(zhàn)
- 基于java的游戲坦克大戰(zhàn)
- 基于java語言的坦克大戰(zhàn)
- 基于java的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn) 開題報告
- 基于java的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)【開題報告】
評論
0/150
提交評論