坦克大戰(zhàn)詳細(xì)設(shè)計說明書樣本_第1頁
坦克大戰(zhàn)詳細(xì)設(shè)計說明書樣本_第2頁
坦克大戰(zhàn)詳細(xì)設(shè)計說明書樣本_第3頁
坦克大戰(zhàn)詳細(xì)設(shè)計說明書樣本_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、軟件詳細(xì)設(shè)計說明書TankWar 類:TankWar繼承 Frame 類。1、paint()方法paint()方法主要實現(xiàn)對坦克類和子彈類,障礙物類和爆炸類等畫到窗 口上。坦克類又分為MyTank和EnwmyTank兩類。對這兩類用不同的顏色 畫到窗口上。畫子彈時經(jīng)過傳遞坦克的顏色畫出相應(yīng)的子彈顏色。子彈畫坦克死亡則不再對其進(jìn)行重畫。2、update()方法。update()方法主要是為了解決,重畫頻率太快,paint()方法還沒有完成,重畫坦克時出現(xiàn)的閃爍現(xiàn)象。經(jīng)過雙緩沖技術(shù)將所有東西畫在虛擬圖片上,一次性顯示出來解決閃爍 現(xiàn)象。3、內(nèi)部類KeyMon®盤監(jiān)聽KeyMon能承Key

2、Adapter類。經(jīng)過KeyMont的監(jiān)聽,用戶能夠經(jīng)過鍵盤 控制自己的坦克。4、內(nèi)部類 MyTankWarThreadMyTankWarThreacR現(xiàn) Runnable 接口,經(jīng)過 MyTankWarThrea成現(xiàn)對坦 克的重畫,實現(xiàn)坦克的移動。5、showFrame()方法showFrame()方法主要是設(shè)置一個窗口及其各種參數(shù)。Tank 類Tank類是實現(xiàn)Runnable接口的一個抽象類1、Tank類的主要屬性有:/int x;/坦克的位置int y;int oldx;/坦克上一步的坐標(biāo)int oldy;/Dir dir;/ Tank方向的成員變量int speed = 5;boole

3、an isLive = true;2、Tank類提供各種的構(gòu)造方法Tank(int x, int y)Tank(int x, int y, Dir dir)Tank(int x, int y, Dir dir, TankWar tw)根據(jù)不同的需要使用不同的構(gòu)造方法。3、drawTank ()方法drawTank()方法根據(jù)坦克的類型不同能夠畫出不同類型的坦克和不同方 向的坦克。敵人的坦克用BLUE!出來,自己的坦克用RE顏色畫出來,以 區(qū)分?jǐn)澄摇?、fire()方法fire()方法的功能是實現(xiàn)打出一顆子彈,fire()方法調(diào)用了畫坦克的顏色變量c,畫出與坦克一樣顏色的子彈,以區(qū)別子彈是那一方

4、發(fā)出來 的。5、isHitWall()方法該方法是用來判斷Tank是否與障礙物發(fā)生碰撞public boolean isHitWall() Wall w = null;for (int i = 0; i < tw.walls.size(); i+) w = tw.walls.get(i);if (w.isHits(this.getRectangle() return true;)return false;)6、getRectangle()方法該方法主要是用來檢測是否發(fā)生了碰撞。public Rectangle getRectangle() return new Rectangle(x,

5、y, TANK_WIDTH, TANK_HEIGHT);)7、add(int count, TankWar tw)方法該方法是用來添加敵人坦克的,當(dāng)敵人坦克數(shù)量減少時,而此時敵人的count又未小于0時添加相應(yīng)數(shù)量的敵人坦克來增加游戲的可玩性。MyTank 類MyTan螃8 承 Tank類1、locDir(KeyEvent e)方法經(jīng)過鍵盤監(jiān)聽,對按鍵進(jìn)行監(jiān)聽來實現(xiàn)用戶能夠經(jīng)過 W D S A3個方向鍵 對坦克的控制2、keyReleased(KeyEvent e)方法該方法主要是為了防止連續(xù)發(fā)子彈的問題,只有放開SPAC按鍵才能夠發(fā)彈,這樣就增加了游戲的可玩性。3、stay()方法該方法主要

6、實現(xiàn)暫停的功能,這個是本游戲代碼中的一個的亮點,經(jīng)過 線程來實現(xiàn)的public void stay() int tc = Thread.activeCount();Thread threads = new Threadtc;Thread.enumerate(threads);if (tw.flag) for (int i = 0; i < threads.length; i+) System.out.println(tc + ":suspend " +threadsi.getName();if (threadsi.getName().matches("AThread-.*") threadsi.suspend();tw.flag = false;) else if (! tw.flag) for (int i = 0; i < threads.length; i+) System.out.println(tc + ":resume " +threadsi.getName();if (threadsi.getName().matches("AThread-.*") threadsi.resume();tw.flag = true;4、move()方法

溫馨提示

  • 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

提交評論