基于java的坦克大戰(zhàn)游戲的設計與實現【文獻綜述】_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  畢業(yè)論文文獻綜述</b></p><p><b>  計算機科學與技術</b></p><p>  基于JAVA的坦克大戰(zhàn)游戲的設計與實現</p><p><b>  摘要</b></p><p>  坦克大戰(zhàn)(Battle City)是一款經典休

2、閑防御射擊類游戲。游戲以坦克戰(zhàn)斗及保衛(wèi)基地為主題,屬于策略型聯(lián)機類。同時也是少有的內建關卡編輯器的幾個游戲之一,玩家可自己創(chuàng)建獨特的關卡,并通過獲取一些道具使坦克和基地得到強化。</p><p>  本項目介紹了坦克大戰(zhàn)的基本構建方法、java的相關技術及本程序的結構分析和具體功能的實現。重點運用了圖形化用戶界面GUI,Thread多線程的有關知識,其中涉及了繪圖工具的運用,事件處理操作以及圖形的碰撞檢測等知識點

3、。</p><p>  學會圖形化用戶界面的構建,通過啟用多線程機制,將畫面構造出來,使用雙緩沖消除閃爍現象。使用鍵盤監(jiān)聽類KeyMonitor實現坦克的控制操作,實現坦克與障礙物之間的碰撞檢測,利用容器類添加對象。</p><p>  關鍵詞:基地 射擊 關卡</p><p><b>  1.引言</b></p><p

4、>  坦克大戰(zhàn)是一款風靡全球的電視游戲機和掌上游戲機游戲。此游戲由于游戲簡單、操作方便而備受大家青睞。游戲編程涉及圖形[3]圖像、實時輸入獲取、邏輯控制[4]、音樂音效編程、人工智能[5]等方面。不同于一般的圖形應用程序,游戲圖像對硬件有著嚴格甚至于苛刻的要求。游戲開發(fā)人員總是想著如何發(fā)揮現有的硬件的極限性能[6]以實現更華麗更逼真的游戲圖形效果。這不僅需要硬件技術的發(fā)展支持,也要求游戲程序員在數據結構、圖形算法領域不斷地加以突破

5、。經典的坦克大戰(zhàn)游戲卻是一個特例,它規(guī)則簡單,所有人都比較熟悉,而且涉及到鍵盤控制、計分功能、內建關卡以及其他邏輯問題,是一個比較綜合而相對難度不很大的游戲,很適合初學者學習計算機程序開發(fā)技術,鍛煉自己的動手能力。</p><p>  2. 游戲語言與工具</p><p>  開發(fā)任何軟件,掌握一門編程語言是必不可少的。在某些應用程序中,總有一些計算機語言優(yōu)于其他語言。下面是幾種用于編寫游

6、戲的主要編程語言[7]的介紹及其優(yōu)缺點。</p><p>  C/C++語言:實際上大部分游戲都是由C/C++語言編寫的,C語言支持結構化編程,也就是說C的程序被編寫成一些分離的函數呼叫(調用)的集合,這些呼叫是自上而下運行,而不像一個單獨的集成塊的代碼使用GOTO語句控制流程。由于C是由匯編語言編寫的,將C和匯編語言進行結合變得相當容易。函數調用接口非常簡單,而且匯編語言指令還能內嵌到C代碼中,所以,不需要連接

7、獨立的匯編模塊。C++語言是具有面向對象特性的C語言的繼承者。面向對象編程,或稱OOP是結構化編程的下一步。OO程序由對象組成,其中的對象是數據和函數離散集合。有許多可用的對象庫存在,這使得編程簡單得只需要將一些程序“建筑材料”堆在一起(至少理論上是這樣),組織大型程序的能力和程序移植性都比C語言好得多。</p><p>  匯編語言:最小、最快的語言。匯編高手能編寫出比任何其他語言能實現的快得多的程序。確切的說

8、,任何能在其他語言里做到的事情,匯編都能做,只是不那么簡單 — 這是當然,就像既可以開車到某個地方,也可以走路去,只是難易之分。匯編語言的缺點也很明顯:缺點:難學、語法晦澀、堅持效率,額外代碼多,維護困難且移植性近于零??偟膩碚f,匯編語言不會在游戲中單獨應用。游戲使用匯編主要是來編寫游戲核心中需要高速反復運行的部分。</p><p>  JAVA:一門緊湊而易學的語言,Java從C++ 中借用了大量的語法,丟棄了

9、很多C++的復雜功能,。不像C++,Java強制面向對象編程,。自動分配資源配合垃圾回收[3]使得JAVA很容易實現不易崩潰且不會泄漏資源的可靠程序,程序也可以在網頁中運行。JAVA的另一個優(yōu)勢就是移植性[4]非常好。JAVA的缺點是使用一個“虛擬機[8]”來運行可移植的字節(jié)碼而非本地機器碼,程序將比真正編譯器慢。</p><p>  通過對幾種語言的比較,我選擇用Java[9]進行坦克大戰(zhàn)的編寫。重點運用了圖形

10、化用戶界面GUI,Thread多線程的有關知識,其中涉及了繪圖工具的運用,事件處理操作以及圖形的碰撞檢測[16]等知識點</p><p><b>  3.游戲系統(tǒng)簡介 </b></p><p>  坦克大戰(zhàn)游戲是一款面向所有愛好射擊類等的游戲迷所創(chuàng)建的游戲,打開游戲界面,游戲界面中有開始游戲、游戲幫助和退出游戲的選項。點擊開始游戲即可開始玩,WASD控制方向,J為子彈

11、,玩家控制主坦克的移動和炮彈的發(fā)射,將地方坦克全部消滅并保證己方基地不被打掉則視為玩家勝利,游戲中有超級武器和加血道具,靠玩家自己的摸索,游戲按鍵簡單,易于操作。</p><p><b>  3.1游戲規(guī)則</b></p><p>  勝利條件:保護位于游戲界面中下部的我方基地,將20架敵方坦克擊毀便可勝利,進入下一關。</p><p>  失

12、敗條件:我方坦克全滅或基地被毀。無論我方坦克殘量幾何,基地一旦被毀,游戲立刻CAME OVER。</p><p>  4.游戲制作編程需求</p><p>  以一架坦克的大小為一格,每場戰(zhàn)斗開始時,游戲的設置是在一個特定的場景中,玩家控制我方坦克,由游戲提供了讓玩家坦克運行的方法和發(fā)射子彈的方法,消滅敵方坦克保護基地的一個游戲,游戲中敵方的坦克是由系統(tǒng)所控制的,能自動的隨機發(fā)射出子彈。游

13、戲功能要求如下:</p><p>  坦克移動需求:運用十字鍵進行暢快自如的移動,炮口方向與移動方向自動一致。移動的最小單位為1/2格,如果只消減了1/4的障礙物,就無法繼續(xù)前進。</p><p>  地形需求:戰(zhàn)場并不是一馬平川,各種障礙物構成了復雜的地形,地形包括磚墻、森林、樹木等,學會利用地形是坦克大戰(zhàn)基礎中的基礎。</p><p>  攻擊需求:一枚炮彈的攻

14、擊判定寬度為1格,強度為1/4格,也就是說,要擊毀1格的紅磚,需要發(fā)射四枚炮彈。當己方坦克火力處于1級時,同屏只能出現己方的一枚炮彈,合理的開炮是制勝的最有效的途徑。</p><p>  勝利需求: 保護我方基地,將所有敵方坦克擊毀便可勝利。</p><p><b>  5.游戲主要類</b></p><p>  5.1構建坦克類(Tank類)

15、</p><p>  創(chuàng)建一個坦克類,為Tank類添加成員變量,添加draw方法,使Tank類獨立控制自己的畫法,構造函數中創(chuàng)建使得每個坦克都擁有自己的一顆子彈,這些子彈將隨著坦克自己的調動而調動。為區(qū)分敵我坦克,在類中創(chuàng)建了Good tank和bad tank來分別表示我方坦克和敵方坦克,以簡化結構。</p><p>  5.2添加炮彈類(Missile類)</p><

16、;p>  添加Missile類,添加x,y,dir等屬性以及常量。在Missile類當中添加構造方法,draw方法等必要方法。根據不同的方向,子彈要進行不同的運動。在Tank類當中增加對J鍵的按鍵處理,使每按下J鍵的時候,坦克打出一發(fā)炮彈。為了解決坦克停下來也能開火的問題——給坦克加一炮筒,根據炮筒方向和位置設定子彈的方向和位置并new出來,然后返回。</p><p>  5.3添加基地類(Headquar

17、ters 類) </p><p>  建立Headquarters類,在Headquarters類中為基地添加紅磚,當紅磚中的Headquarters被打掉后游戲結束。讓敵方坦克發(fā)射炮彈,本軍坦克不打本軍坦克,向炮彈添加表示好壞的Boolean量good。修改炮彈的構造方法;修改Tank的fire方法,坦克只能打擊對方。</p><p>  5.4添加墻類(wall 類)</p>

18、;<p>  建立wall類,往里添加相應屬性以及相應方法,當子彈接觸到墻壁時,墻壁消失。在MainFrame類當中創(chuàng)建容器,將爆炸存放于容器當中,擊斃一輛坦克就產生爆炸,將爆炸逐一畫出(如果死去就去除)。</p><p>  5.5創(chuàng)建地圖類(Map 類)</p><p>  建立map類,在障礙物中添加元素,當子彈打到障礙物抵消掉時,隨機有道具出現,創(chuàng)建Blood類添加血

19、藥箱,加入必要的屬性和方法。當主站Tank與藥箱接觸的時候,血自動加滿。添加容器類,用容器來裝敵方坦克,可多輛裝入。</p><p><b>  6.總結</b></p><p>  該游戲包括游戲場景(地圖)的處理、雙方作戰(zhàn)對象(坦克和子彈)的生成、消減和控制,以及敵方坦克和子彈運行智能性的控制,實現了特定場景中的敵我雙方坦克的對戰(zhàn),敵方坦克由系統(tǒng)控制,自動的發(fā)射子

20、彈;我方坦克由玩家控制,系統(tǒng)為玩家提供控制坦克運行和子彈發(fā)射攻擊的方法。該游戲軟件具有一定的復雜性和可玩性。 </p><p>  在該游戲的設計與實現過程中,不可避免的遇到一些技術方面的問題,比如對游戲地圖加載技術、坦克間的檢測碰撞技術等,這些問題的解決是本游戲的關鍵。當然,該游戲有待于進一步的提高,比如更大程度的提高敵方坦克智能化、游戲中添加寶物(物品),增加可玩性等等。</p><p&g

21、t;<b>  參考文獻</b></p><p>  [1] 耿衛(wèi)東,陳為.計算機游戲程序設計.電子工業(yè)出版社.2009.01[2] 王鵬,何昀峰.Java Swing圖形界面開發(fā)與案例詳解.清華大學出版社,2008.12[3] BruceEckel,Java 編程思想[M].機械工業(yè)出版社,2003.10[4] 呂建德.游戲程序設計概論.中國鐵道出版社.2006[5] 趙

22、毅.跨平臺程序設計語言——Java.西安電子科技大學出版社,2006.01[6] 楊恩雄,麥凱翔.瘋狂Java實戰(zhàn)演義.電子工業(yè)出版社.2010.06[7] Jonathan S. Harbour.Java 5 游戲編程.機械工業(yè)出版社,2007.01[8] 趙強,喬新亮.J2EE應用開發(fā)[M].北京:電子工業(yè)出版社.2003.</p><p>  [9] 陳東.編程常用設計模式.電子工業(yè)出版,20

23、05.10</p><p>  [10] [美]Herbert Schidt著.Java參考大全.鄢愛蘭.鹿江春譯.北京:清華大學出版社,2006</p><p>  [11] 宛延闿等.實用Java程序設計教程.機械工業(yè)出版社,2006</p><p>  [12] 張海藩.軟件工程導論.清華大學出版社, 2008.2</p><p>  

24、[13] Andy Budd&Cameron Moll&Simon Collison .CSS Mastery: Advanced Web Standards Solutions .Apress, 2006.10</p><p>  [14] Harvey M. Deitel .java how to program. Pearson Education ,2001.8</p>&l

25、t;p>  [15] 李尊朝,蘇軍. Java語言程序設計.中國鐵道出版社,2006.1 </p><p>  [16] 邱郁惠.系統(tǒng)分析師UML實務手冊.機械工業(yè)出版社,2008.04</p><p>  [17] 陳軼.姚曉昆.Java程序設計實驗指導.清華大學出版社,2006</p><p>  [18] 邱郁惠.系統(tǒng)分析師UML實務手冊.機械工業(yè)出版社

溫馨提示

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

評論

0/150

提交評論