【基于java的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)6400字(論文)】_第1頁
【基于java的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)6400字(論文)】_第2頁
【基于java的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)6400字(論文)】_第3頁
【基于java的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)6400字(論文)】_第4頁
【基于java的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)6400字(論文)】_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要:小巧簡單的小游戲深受人們喜愛,如掃雷、紙牌等經(jīng)典游戲長期深受用戶的喜愛。此類休閑小游戲可以在娛樂的同時調(diào)節(jié)游戲愛好者的身心健康。為此,將經(jīng)典的坦克大戰(zhàn)小游戲進行優(yōu)化。如增設(shè)了部分關(guān)卡,調(diào)整了攻擊參數(shù),優(yōu)化了部分參數(shù),設(shè)置幾種關(guān)卡供使用者靠近,使用多線程增加了對抗的難度等。系統(tǒng)包括游戲開始、關(guān)卡選擇、運行選擇等幾個功能模塊,每個模塊在原有基礎(chǔ)上進行了化化與升級。經(jīng)升級后的小游戲運行流暢、視覺沖擊感強、用戶體驗度好。經(jīng)游戲愛好者實測,優(yōu)化后的小游戲易于上手,娛樂性與趣味性增加。關(guān)鍵詞:面向?qū)ο筇箍舜髴?zhàn)游戲J2SE1緒論1.1選題的目的和意義P城市現(xiàn)代化的快節(jié)奏生活,使得現(xiàn)代人的壓力增長迅速。而長期的工作或?qū)W習壓力往往使得人們身習疲憊,需要一種方式來釋放自我的負面情緒或壓力,而游戲往往是最佳的選擇之一。游戲的種類很多,比如角色扮演類、射擊類、策略類、益智類或敏捷類等等,每種游戲都有自己的特點,可以實現(xiàn)相關(guān)的功能。以益智為主題的游戲可以鍛煉用戶的邏輯思維;以策略為主題的游戲可以促進游戲愛好者的智力發(fā)展;以敏捷為主題的游戲可以提升游戲玩家的敏捷能力。經(jīng)典的小游戲長盛不衰,比如windows自帶的紙牌類游戲、掃雷游戲,自出現(xiàn)到如今,依然是電腦愛好者的首選游戲。各個大學計算機實驗室,大一新生學習之余往往打開紙牌或掃雷,調(diào)節(jié)一下情緒,緩解一下壓力。馬里奧游戲歷經(jīng)幾十發(fā)展,依然是年青一代游戲愛好者的選擇之一。經(jīng)典的飛機大戰(zhàn)、太空翱翔等射擊類游戲也是年青一代游戲愛好者選擇的選擇之一。另一款經(jīng)典游戲坦克大戰(zhàn)自70年代出品以來,歷經(jīng)各種機型或版本的變化,現(xiàn)今已然是游戲界的堅挺游戲之一。其以敏捷類為主題,在緩解游戲愛好者壓力的同時還能提升玩家的電腦使用熟練程度、運動的敏捷以及思緒的快速反映,對游戲愛好者來講,是一款不錯的游戲選擇。然而,傳統(tǒng)的坦克大戰(zhàn)小游戲也存在著多多少少不盡人意之處。比如在關(guān)卡方面選擇度較小,玩家很容易通關(guān)。在對戰(zhàn)坦克方面,系統(tǒng)隨機出現(xiàn)的坦克數(shù)量較少,玩家很容易完成攻擊;在攻擊對象方面,也有待優(yōu)化,比如對象較單一等等。針對這些方面,擬打算對經(jīng)典坦克大戰(zhàn)游戲進行優(yōu)化。如增設(shè)了部分關(guān)卡,調(diào)整了攻擊參數(shù),優(yōu)化了部分參數(shù),設(shè)置幾種關(guān)卡供使用者靠近,使用多線程增加了對抗的難度等。系統(tǒng)包括游戲開始、關(guān)卡選擇、運行選擇等幾個功能模塊,每個模塊在原有基礎(chǔ)上進行了化化與升級。經(jīng)升級后的小游戲運行流暢、視覺沖擊感強、用戶體驗度好。經(jīng)游戲愛好者實測,優(yōu)化后的小游戲易于上手,娛樂性與趣味性增加。1.2系統(tǒng)的優(yōu)點(1)游戲內(nèi)容上的優(yōu)點:坦克大戰(zhàn)游戲的設(shè)計內(nèi)容沒有其他游戲那么復雜,也沒有枯燥而乏味地一直做任務(wù)。(4)技術(shù)上的優(yōu)點:使用了多線程的概念,增加了對抗地難度。系統(tǒng)把線程分配給敵方的二十輛坦克,使其能夠單獨運轉(zhuǎn)。(5)風格上的優(yōu)點:采用的是軍事化的元素,使界面更加獨特。1.3論文組織結(jié)構(gòu)為了介紹坦克大戰(zhàn)游戲系統(tǒng)的設(shè)計與開發(fā),一共分為五大方面來闡述每一階段的工作,從第二章具體布局如下:在第二章中,對開發(fā)工具及系統(tǒng)的架構(gòu)進行簡單介紹,開發(fā)工具是eclipse,架構(gòu)是j2se平臺,并對各個部分進行簡要概述。在第三章中,進行可行性分析,對系統(tǒng)的游戲進行分析,并規(guī)則和功能進行簡要介紹。在第四章中,進行總體設(shè)計,將坦克大戰(zhàn)游戲系統(tǒng)分為開始和退出、暫停和繼續(xù)、游戲級別、幫助四個模塊。同時設(shè)計功能模塊,分為堡壘,坦克,墻,森林,爆炸模塊,并對各模塊進行簡要介紹。在第五章中,展示了系統(tǒng)的具體是怎么實現(xiàn)的,并對功能進行詳細介紹。2開發(fā)工具及系統(tǒng)架構(gòu)簡介2.1開發(fā)技術(shù)概述java編程java開發(fā)語言非常類似c編程語言和c++編程語言。java的編程開發(fā)語言是單純的面向?qū)ο蟮模闹行木褪潜A袅薱++語言的面向?qū)ο蟮奶攸c。java換掉了c編程語言里易于造成缺口的指針、重載運算符、多重繼承等等性能。加入收回垃圾器性能來接收不能夠被引用而浪費的存儲單元,讓設(shè)計開發(fā)的工作者不必由于存儲空間大小感到心煩。java發(fā)展到目前為止,對比其他的語言來說,屬于成熟語言。它的優(yōu)點是易于開發(fā),但其操作效率不如C/C++。假設(shè)對平臺沒有過高的要求的話,就可以使用java。java與傳統(tǒng)的編譯型運用編程語言和解釋型運用編程語言,它屬于一邊進行編譯一邊又解釋運行的半編譯半解釋型。它第一步把源代碼翻為字節(jié)代碼,第二步把代碼利用虛擬機編譯代碼。java目前最多的項目就是web設(shè)計,包括各種網(wǎng)站平臺的游戲,運用十分廣泛。c編程c語言是電腦開發(fā)編程,它有兩個語言上的優(yōu)勢,一個是語言高級,另一個就是匯編語言。在19世紀70年代末,不管電腦的體積是大還是小,c編程都能在電腦上運行。c語言于java不同,是面向過程的語言。所以實際上java的開發(fā)效率高,c的運行效率高。由于c是基本的語言,對比java更適應(yīng)計算機。很多軟件設(shè)計都是使用c,例如xp操作平臺,linux操作平臺。c++編程c++是c的升級版,結(jié)合了java的特點面向?qū)ο蠛蚦的特點面向過程。所以c++的優(yōu)點是盡可能地與c相容和面向?qū)ο蟆++具有c的簡單高效的語言特點,并且從c的身上汲取經(jīng)驗,實行優(yōu)化。所以c++相較于c來說更加具有說服力,并且c++的編程平臺可以檢測很多種錯誤。因為c是基本的語言,被人們普遍運用,所以也推動了c++的發(fā)展。但是c++編程語言十分繁復,很多人甚至看不懂是什么意思。C++的操作平臺由于其編程語言的難以理解導致運行起來也不簡單。2.2編程語言簡介java是一種能夠面向?qū)ο蟮木幊陶Z言,它本身具備的跨平臺的優(yōu)點深受開發(fā)者的歡迎。它分為javase,javaee,javame三個版本。java具備靈活性,還有可移植性和安全性,而且開發(fā)效率高。技術(shù)開發(fā)人員也在使用這門語言,把java技術(shù)廣泛應(yīng)用于個體計算機上。java平臺由java的虛擬機和java應(yīng)用編程接口(api)兩者一起組成。java平臺被裝置在操作平臺上后,就可以運用java語言來實現(xiàn)編程。如今在很多應(yīng)用程序里面都在使用java平臺。2.3j2se平臺簡介由于java編程方向的不同,一共劃分成3個樣式,即j2se(標準化),j2ee(企業(yè)化),j2me(微縮化)。j2se涵蓋的各種組件,性能體系構(gòu)造和技術(shù)級別,具備通用的規(guī)范和原則,因此在j2se體系結(jié)構(gòu)的多個平臺之間具有良好的兼容性。它解決了因公司后臺運用的技術(shù)互相之間不兼容,而使公司內(nèi)部和外部交流變得困難的難題。j2se的體系構(gòu)造,設(shè)計工作人員根據(jù)規(guī)定的標準,來使用設(shè)計開發(fā)的編程。而且不同的j2se開發(fā)商,都會遵守各種j2se中設(shè)定的開發(fā)規(guī)范,用來保證j2se系統(tǒng)和產(chǎn)品彼此雙方的相容性。換句話說,基于j2se體系構(gòu)造的編程,能夠在獨立的編程服務(wù)器中完成,而且只需要使一小部分的代碼發(fā)生變化,就能夠大大增強使用編程平臺的可移植性。2.4MyEclipse軟件簡介以java語言為基底的Eclipse,是一個源代碼開放的軟件開發(fā)操作平臺。它自身就是一個框架與服務(wù)平臺,利用插件來組成開發(fā)的內(nèi)容,各種插件都被包含在Eclipse中。這個軟件的最顯著的特點是:只需要安裝并且下載作用不同的插件,就能夠進行風格不一的編程設(shè)計。Eclipse能夠促進項目的設(shè)計進程,是因為它只是作為代碼編程的普通代碼編輯器,它還具有自己主動找到錯誤并且及時糾正錯誤的重要性能。3系統(tǒng)分析3.1可行性分析(1)游戲程序由于它的代碼重復率大,所以需要高精度的軟件編程。被設(shè)計開發(fā)出來的完整項目,其工作的每秒將運轉(zhuǎn)千百行代碼。所以,項目的邏輯設(shè)計一定要十分嚴謹,并且在設(shè)計過程中必須想出所有將要發(fā)生的事情和偶然的狀況。(2)游戲開發(fā)的時候要導入圖像,達到美觀的效果,增強視覺沖擊感。(3)用戶通過按鍵來管控坦克上下左右的操作,但是由于敵人會自動移動,就得使敵方坦克具有一定的智能性。所以,系統(tǒng)運用多線程的技術(shù)把線程分配給每一輛坦克。坦克受線程的控制,能夠自己獨立運轉(zhuǎn)。(4)對于敵人坦克發(fā)射的子彈的管控同樣應(yīng)該注意,子彈應(yīng)該位于自己的線程上。敵人的子彈只要求判斷玩家的坦克位置,玩家坦克回回都必須要判斷全部的敵方坦克在哪里。為此,就需要更好地控制界面上的對象。此外,子彈在發(fā)射過程中要判斷會不不撞在阻擋物品或界面邊界上。同時,在系統(tǒng)上配置的線程過多可能會降低程序運行速度。(5)隨著兩方坦克的移動,要想一下它們能否會與障礙物或另外的坦克相撞以導致界面上的物體相互疊加在一起,不要導致科學上不現(xiàn)實的情況,使用戶缺少了體驗感。(6)以虛擬機為基礎(chǔ)的半解釋形式的java編程平臺,運行效率要比所有編譯代碼平臺(如C++)的運行效率低得多。如果程序不經(jīng)過簡化與優(yōu)化,則系統(tǒng)可能無法順利運行。3.2游戲規(guī)則和系統(tǒng)功能介紹 在游戲中,坦克能夠在四個方向上走動。運行過程中,坦克有可能與其他坦克發(fā)生碰撞,但它們不會疊加在一起。坦克可以朝四個方位射出子彈,射出的子彈攻擊坦克使坦克爆炸。在游戲里面有阻擋物品,坦克以及子彈不可以越過阻擋物品,如果不小心讓敵人的子彈命中,則血條值就會減小,假設(shè)最后血條值是0的話,則坦克一定會爆炸,按F啟動一個新坦克游戲界面,隨機的紅心可以增強血條值。游戲的勝利是坦克來擊敗敵方坦克,而且當二十輛敵方坦克都被擊敗時,游戲完結(jié)。坦克大戰(zhàn)這款一對多的游戲模式,歸根結(jié)底是用戶操控自己的坦克來攻擊仇敵的坦克。這款游戲的大致性能有,坦克能夠在界面的各個地方移動,而且還可以朝仇敵射出子彈,來攻擊對方,仇敵的坦克可以四個目標方位隨機走動。假設(shè)攻擊到了對方的坦克的話,那么對方的坦克就會發(fā)生黃色的爆炸。假設(shè)自己的坦克被仇敵的坦克攻擊,就會降低血條值,但是吃掉紅心的話,就會增加自己的血條值,繼續(xù)攻擊對方。用戶的坦克和對方的坦克不能重復在一起,玩家的坦克在走到游戲界面的邊緣的時候,就不會再繼續(xù)前進了。安放阻擋的物品,并且坦克不能越過阻擋的物品。3.3程序運行表 表3.3坦克大戰(zhàn)信息表字段名數(shù)據(jù)類型長度說明tank行速int100speedtank寬度int100widthtank高度int50heightTank位置int200xy墻int20wall紅心int50blood3.4描述坦克運行流程坦克大戰(zhàn)游戲運用的是面向?qū)ο蟮脑O(shè)計方式,系統(tǒng)把對象分配給游戲里的一切元素。游戲開始時玩家單擊菜單選項,也可以重置游戲界面。玩家管控的坦克在主線程里操作,跟著界面重置的頻率而前行。對方的坦克要在游戲開始的那一刻慢慢添加線程,添加一個坦克便要添加一個線程。如果線程的數(shù)量增加到頂峰,便不能容許對方增加坦克。玩家的坦克從游戲開始的時候就被分配一顆子彈,子彈擁有自己的線程。即使如此,如果碰著了障礙物或者是對方的坦克的話,雖然游戲運轉(zhuǎn)失敗,但是不會去掉子彈對象,光把它的線程結(jié)束。玩家第二回射出的子彈,不過是把結(jié)束的線程第二次喚醒。在游戲運行過程中,系統(tǒng)要掃描許多問題。例:玩家坦克的血條值是不是沒有了,對方的坦克數(shù)量是不是零等等。圖3.4坦克運行流程圖4系統(tǒng)總體設(shè)計4.1總體模塊根據(jù)對游戲的調(diào)查與分析,將坦克大戰(zhàn)游戲系統(tǒng)分為開始和退出、暫停和繼續(xù)、游戲級別、幫助四個模塊。坦克大戰(zhàn)游戲系統(tǒng)的模塊劃分如圖4-1所示:圖4.1游戲總體模塊圖系統(tǒng)總體模塊應(yīng)具有控制恢復,退出,暫停,幫助等功能,所以需要劃分菜單選項。菜單包括恢復,暫停和關(guān)閉游戲。上述性能的玩家界面位于TankClient配置方法中,而且運用面板的類方法及其監(jiān)聽性能,所以十分易于完成。4.2游戲組成游戲大致由堡壘、坦克、墻、森林、爆炸五個方面來組成。具體設(shè)計情況如下:(1)坦克坦克是用戶來操作的。tank屬性:行速、tank的尺寸、tank在移動過程中的地址、tank是不是仍在運轉(zhuǎn)以及方位等。坦克前進的目標,子彈的射出和游戲的開始皆由鍵盤響應(yīng)。當坦克撞到墻壁,邊界,堡壘和其他障礙物時,必須要改變方向,因此有必要針對坦克中的每個障礙物進行研究。(2)堡壘堡壘的詳細屬性是堡壘的大小、堡壘的地址以及堡壘的方位。坦克射出子彈,保護好自己的堡壘的同時,要求擊敗對方的坦克才能贏取勝利。就像森林和坦克一樣,堡壘也有它們本身的結(jié)構(gòu)模塊。因為游戲可以重新開始,系統(tǒng)必須需要不時地進行判斷堡壘的當前狀況。游戲界面的結(jié)尾還包括清屏操作。(3)墻該墻分為基礎(chǔ)墻和鐵墻。子彈會損壞基礎(chǔ)墻,但不會損壞鐵墻。(4)森林森林主要是用于裝飾的,它是不透明的。森林具有兩個屬性:位置、長寬。(5)爆炸坦克爆炸的影響針對每個類別進行了獨立描述。爆炸的性質(zhì):地址和生存形態(tài)。再一個,游戲界面出現(xiàn)爆炸效果的時候是受玩家控制的。河流、樹木、房屋、墻壁等,它們是通過自己類中調(diào)用draw函數(shù)進行繪制的,最后,創(chuàng)建一個新的圖形板,并將所有元素添加到該板中。構(gòu)造接口時,通過接口實例對象的add方法添加接口的元素,并且必須不斷更新和重繪移動的元素。5游戲的具體實現(xiàn)5.1功能(1)菜單項功能用戶點擊菜單選項來開始、結(jié)束、暫停、繼續(xù)以及運用幫助性能來建造新游戲。系統(tǒng)將詢問用戶是否要繼續(xù)使用兩個功能,即開始和結(jié)束新游戲。新游戲功能:在此模塊中實現(xiàn)游戲的性能的核心代碼如下所示。publicTankClient() jmb=newMenuBar(); jm1=newMenu("游戲"); jm2=newMenu("暫停/繼續(xù)"); jm3=newMenu("幫助"); jm4=newMenu("游戲級別");創(chuàng)建一個菜單,然后有游戲暫停繼續(xù)幫助游戲級別的選項。單擊“確定”開始新游戲,然后單擊“取消”返回到原始頁面。(2)確認是否退出:在此模塊中實現(xiàn)是不是要退出的核心代碼如下所示。 Object[]options={"確定","取消"};單擊確定馬上會結(jié)束游戲界面,單擊“取消”就結(jié)束退出此游戲。(3)在子彈擊中到對手的坦克后爆炸作用:在這個模塊中完成爆炸的核心代碼如下所示。for(inti=0;i<bombTanks.size();i++) BombTankbt=bombTanks.get(i); bt.draw(g);紅色圖像代表了用戶擊中坦克后發(fā)生了爆炸。當子彈撞擊基礎(chǔ)的墻壁時,墻壁會隱沒。(4)子彈擊中普通墻:在此模塊中實現(xiàn)子彈打中了普通的墻壁的核心代碼如下所示。publicbooleanhitWall(CommonWallw) if(this.live&&this.getRect().intersects(w.getRect())){ this.live=false; this.tc.otherWall.remove(w); 圖片中帶有橙色箭頭表示子彈打中了基礎(chǔ)墻,墻被毀了。子彈打到普通墻上,就會清除所打中的墻的部分。(5)游戲失敗:在此模塊中實現(xiàn)游戲輸?shù)舾Y(jié)束的核心代碼如下所示。publicvoidgameOver(Graphicsg)g.drawString("你輸了!");g.drawString("游戲結(jié)束!");游戲失敗后使用gameover()方法完結(jié),該方法將刪除界面上的一切東西。(6)重置游戲在此模塊中實現(xiàn)R鍵重置游戲的核心代碼如下所示。publicvoidkeyPressed(KeyEvente){ intkey=e.getKeyCode(); switch(key){ caseKeyEvent.VK_R: tc.tanks.clear();先是按下R鍵,然后清除之前的游戲記錄,啟動新的游戲頁面。(7)坦克撞到邊緣在此模塊中實現(xiàn)坦克撞到邊緣的核心代碼如下所示。if(x+Tank.width>TankClient.Fram_width) x=TankClient.Fram_width-Tank.width;坦克撞到邊緣的效果,當坦克走到邊界時就停滯不前。(8)在用戶贏得游戲后:在此模塊中實現(xiàn)游戲勝利的核心代碼如下所示。this.otherWall.clear();g.drawString("你贏了!");g.setFont(f);先判斷是不是贏了游戲,如果是的話界面上就會顯示你贏了。結(jié)論坦克大戰(zhàn)游戲系統(tǒng)是在windows的操作系統(tǒng)下,在MyEclipse上面編

溫馨提示

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

評論

0/150

提交評論