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

下載本文檔

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

文檔簡介

基于U3D的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)摘要:當(dāng)今社會的科技水平和經(jīng)濟水平在迅速發(fā)展著,游戲行業(yè)也以驚人的速度發(fā)展著?,F(xiàn)在的游戲行業(yè)可以說已經(jīng)占據(jù)了整個經(jīng)濟市場舉足輕重的位置,同時也直接催生了電子競技的誕生。電子游戲便成了人們休閑生活的又一重要方式。雖然每年出現(xiàn)的游戲作品有很多,但足夠優(yōu)秀強大的游戲作品卻很稀缺。而Unity3D這款游戲引擎十分強大,只要有很好創(chuàng)意自己做一個游戲也是完全有可能的,所以學(xué)好這款軟件也有重要的意義程彬彬,王明鑫,商楠.淺談游戲開發(fā)平臺Unity3D的應(yīng)用與發(fā)展前景[J].通訊世界,2016(14):236.。程彬彬,王明鑫,商楠.淺談游戲開發(fā)平臺Unity3D的應(yīng)用與發(fā)展前景[J].通訊世界,2016(14):236.在如今科技發(fā)達的社會下,自己動手做一個自己喜愛的游戲已經(jīng)不是遙不可及的一個夢了。通過這次設(shè)計設(shè)計一個2D的坦克大戰(zhàn)游戲來對Unity3D有一個基本且全面的認(rèn)識,在認(rèn)識到Unity3D這款游戲引擎的強大之處的同時,還可以大開腦洞讓自己親自動手開發(fā)一款特別的游戲。Unity3D支持多個平臺的移植,也可以方便導(dǎo)入各方面的插件,同時在程序移植的問題上也不會有很大的問題。此次坦克大戰(zhàn)游戲主要分為UI設(shè)計、物理仿真、腳本控制等模塊亞當(dāng)斯.游戲設(shè)計基礎(chǔ)[M].北京:機械工業(yè)出版社,2009.。UI設(shè)計需要先完成各種所需材料的建模模型,可以直接導(dǎo)入在外面畫好的模型文件,直接拖動操作即可完成導(dǎo)入,在整個設(shè)計中基本都是可以通過拖動操作實時完成畫面設(shè)計,這種方式極大提高了開發(fā)效率,同時設(shè)計過程中也非常直觀地看到自己的進程馬曉萍,劉靜.基于Unity3D的坦克大戰(zhàn)游戲設(shè)計與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2017(06):168+171。物理仿真需要考慮物體之間的穿模問題和子彈碰撞問題,需要為各個模型添加一個碰撞器,需要使用BoxColliDer2D的插件吳亞峰?于復(fù)興.Unity3D游戲開發(fā)技術(shù)詳解與典型案例[M].北京:人民郵電出版社,2012.。同時也需要在經(jīng)常移動的模型上加上剛體,需要使用Rigidbody2D的插件,這樣才能觸發(fā)碰撞效果。腳本控制使用C#的編程語言,C#由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言,它安全,穩(wěn)定,簡單,它在繼承C和C++強大的功能的同時去掉了一些它們復(fù)雜的特性,所以也極大提高了開發(fā)者的腳本編程速度李蘭友楊曉光.VisualC#.NET程序設(shè)計[M].?北京:清華大學(xué)出版社,2004.5.。目前我所使用的Unity3D的版本是2019.2.17f1(64-bit亞當(dāng)斯.游戲設(shè)計基礎(chǔ)[M].北京:機械工業(yè)出版社,2009.馬曉萍,劉靜.基于Unity3D的坦克大戰(zhàn)游戲設(shè)計與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2017(06):168+171吳亞峰?于復(fù)興.Unity3D游戲開發(fā)技術(shù)詳解與典型案例[M].北京:人民郵電出版社,2012.李蘭友楊曉光.VisualC#.NET程序設(shè)計[M].?北京:清華大學(xué)出版社,2004.5.坦克大戰(zhàn)的實現(xiàn)將為其他有這方面意向的人打開新世界的大門,讓他們也可以了解到這款游戲引擎的強大之處的同時也可以引發(fā)自己動手作游戲的念頭,雖然這只是一款小游戲,但涉及的技術(shù)點也較為廣泛,在可以引新手入門的同時也可以為有同樣的問題提供參考。關(guān)鍵詞:Unity3D,C#,游戲引擎,坦克大戰(zhàn)游戲

DesignandimplementationoftankbattlegamebasedonU3DAbstract:Nowadays,theleveloftechnologyandeconomyisdevelopingrapidly,andthegameindustryisdevelopingatanamazingspeed.Nowthegameindustrycanbesaidtohaveoccupiedapivotalpositioninthewholeeconomicmarket,andalsodirectlygavebirthtothebirthofE-sports.Videogameshavebecomeanotherimportantwayofpeople'sleisurelife.Althoughtherearemanygameworksappearingeveryyear,therearefewexcellentones.Andunity3disaverypowerfulgameengine.It'spossibletomakeagamebyyourselfaslongasyouhavegoodideas.Soit'salsoofgreatsignificancetolearnthissoftwarewell.Intoday'stechnologicallyadvancedsociety,it'snotanunreachabledreamtomakeafavoritegamebyyourself.Throughthisdesignanddesignofa2Dtankwargame,wecanhaveabasicandcomprehensiveunderstandingofunity3d.Whilerecognizingthepowerofunity3dgameengine,wecanalsoopenabigbrainholetodevelopaspecialgamebyourselves.Unity3dsupportsthemigrationofmultipleplatforms,anditisalsoconvenienttoimportvariousplug-ins.Atthesametime,thereisnobigprobleminthemigrationofprograms.ThetankwargameismainlydividedintoUIdesign,physicalsimulation,scriptcontrolandothermodules.TheUIdesignneedstocompletethemodelingmodelofvariousmaterialsfirst,whichcanbedirectlyimportedintothemodelfiledrawnoutside,andcanbedirectlyimportedbydraggingoperation.Inthewholedesign,itcanbasicallycompletethereal-timepicturedesignbydraggingoperation,whichgreatlyimprovesthedevelopmentefficiency,andatthesametime,itcanalsoseeitsownprocessveryintuitively.Physicalsimulationneedstoconsidertheproblemofmodelpiercingandbulletcollisionbetweenobjects.ItneedstoaddacolliderforeachmodelanduseBoxcollider2Dplug-in.Atthesametime,weneedtoaddrigidbodiestothemodelthatoftenmoves.Weneedtousetheplug-inofRigidbody2Dtotriggerthecollisioneffect.ScriptcontrolusesC?programminglanguage.C?isanobject-orientedprogramminglanguagederivedfromCandC++,whichissafe,stableandsimple.ItinheritsthepowerfulfunctionsofCandC++,andremovessomeoftheircomplexfeatures,soitalsogreatlyimprovesthescriptprogrammingspeedofdevelopers.Thecurrentversionofunity3dIuseis2019.2.17f1(64bit).Therealizationoftankwarwillopenthedoorofthenewworldforotherpeoplewiththisintention,sothattheycanalsounderstandthepowerofthisgameengineandtriggertheideaofmakinggamesbythemselves.Althoughthisisonlyasmallgame,itinvolvesawiderangeoftechnicalpoints,whichcanguidenovicestothesameproblemsaswellasprovidereferences.Keywords:Unity3D,C#,Gameengine,Tankbattlegame目錄第1章緒論 第1章緒論1.1游戲的開發(fā)背景及意義近幾年來,全世界的經(jīng)濟水平的正在快速發(fā)展,同樣的科技水平也不甘落后,也使得游戲行業(yè)也正在不斷地蓬勃發(fā)展。現(xiàn)在的游戲行業(yè)和電影行業(yè)可以說已經(jīng)同等重要了,人們的生活中到處充斥著各種游戲用語的聲音,無論是手游還是端游又或者網(wǎng)游都有著大量的玩家,這成了人們休閑生活的又一重要方式。特別是游戲開發(fā)技術(shù)的進步使得現(xiàn)在大部分游戲作品畫面越來越精美,游戲本身的趣味性也越來越高了,現(xiàn)在的優(yōu)秀作品的游戲已經(jīng)是人們的日常生活消遣娛樂的不二選擇。在2019年,中國游戲產(chǎn)業(yè)取得了一個令人驕傲的成績。2019年中在海南??谡匍_的2019中國游戲產(chǎn)業(yè)年會上,中國音像與數(shù)字出版協(xié)會游戲出版工作委員會發(fā)布的《2019年中國游戲產(chǎn)業(yè)報告》中國音像與數(shù)字出版協(xié)會游戲出版工作委員.2019年中國游戲產(chǎn)業(yè)報告[R].2019.(以下簡稱《報告》)顯示,2019年,中國游戲產(chǎn)業(yè)實際營銷收入為2308.8億元,同比增長7.7%;其中自主研發(fā)游戲的營銷收入為1895.1億元,同比增長15.3%;國產(chǎn)游戲“走出去”繼續(xù)保持較快增長,海外市場營銷收入為115.9億美元,同比增長21%,《報告》顯示,國內(nèi)游戲企業(yè)通過深耕自主研發(fā),探索新的發(fā)展模式和途徑取得較快增長。2019年,中國自主研發(fā)游戲在國內(nèi)市場實際銷售收入已達到1895.1億元,同比增加251.2億元,增長率15.3%。中國自主研發(fā)游戲海外市場實際銷售收入115.9億美元,同比增長21%,增速高于國內(nèi)市場。在海外市場實際銷售收入地區(qū)分布中,美國的收入占比達到30.9%,日本的收入占比達到22.4%,韓國收入占比為14.3%,3個地區(qū)合計占比達到67.6%,數(shù)據(jù)表明,美國已成為中國游戲企業(yè)出海的重要目標(biāo)市場。中國音像與數(shù)字出版協(xié)會游戲出版工作委員.2019年中國游戲產(chǎn)業(yè)報告[R].2019.經(jīng)濟市場中增長速度最快的產(chǎn)業(yè)已經(jīng)是非游戲產(chǎn)業(yè)莫屬了,游戲產(chǎn)業(yè)在現(xiàn)在已經(jīng)成為了人們關(guān)注的熱點。其中游戲是屬于文化創(chuàng)意產(chǎn)業(yè)的其中一員,而創(chuàng)意經(jīng)濟又是知識經(jīng)濟的核心所在,更是其經(jīng)濟的重要表現(xiàn)形式,如果沒有創(chuàng)意,那么也將就沒有新經(jīng)濟。游戲設(shè)計是文化藝術(shù)創(chuàng)意和商品生產(chǎn)的結(jié)合,游戲產(chǎn)業(yè)的發(fā)展在中國的經(jīng)濟發(fā)展具有十分重要的意義孫煦東.游戲改變教育?[N].中國教師報,2015-03-04(003).:孫煦東.游戲改變教育?[N].中國教師報,2015-03-04(003).1.有助于保護中華民族的傳統(tǒng)文化和傳統(tǒng)的價值觀,以防文化侵蝕;2.使得創(chuàng)意產(chǎn)業(yè)能高速發(fā)展,大大提高我國經(jīng)濟領(lǐng)域的發(fā)展速度;3.提供趣味性高質(zhì)量好的大眾娛樂方式,極大提升消費者的休閑體驗感受。在科學(xué)技術(shù)如此發(fā)達的今天,游戲引擎受到的關(guān)注也持續(xù)高漲,目前主要的引擎有BigWorld引擎、UnrealEngine3虛幻引擎、Gamebryo引擎、Unity3D引擎,Unity3D是最近幾年才流行起來,但它由于完美的跨平臺系統(tǒng)使他迅速的在引擎市場占據(jù)了重要的地位曲鵬翔.游戲引擎在游戲開發(fā)中的應(yīng)用分析[J].衛(wèi)星電視與寬帶多媒體,2019(23):16+18.。通過這次畢業(yè)設(shè)計在這里將介紹一款以Unity3D為開發(fā)平臺,以C#為主要開發(fā)語言的坦克大戰(zhàn)游戲。在早些年間,坦克大戰(zhàn)游戲是一款曾經(jīng)非常受歡迎的電視游戲機和掌上游戲機的游戲,在我的童年記憶里,我也時常用著小霸王牌的電視游戲機和我的小伙伴們一起玩這款游戲,它雖然表面看起來很簡單,但卻能讓我們玩的不亦樂乎,令人著魔。如今回看過去,坦克大戰(zhàn)最早還是出現(xiàn)在FC機上,它游戲規(guī)則簡單,容易上手,使用戶能感受到該游戲帶來的樂趣,該游戲在保證運行效果的同時,具有設(shè)備要求低,跨平臺性能好,運行流暢穩(wěn)定的特點馬曉萍,劉靜.基于Unity3D的坦克大戰(zhàn)游戲設(shè)計與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2017(06):168+171.。這次的設(shè)計以一個簡單的坦克大戰(zhàn)游戲為例,并且加以實現(xiàn),在這個過程中里面涵蓋了Unity3D涉及到的一些基本技術(shù),能基本了解這個領(lǐng)域的底層技術(shù)并熟練掌握Unity3D游戲引擎的使用。曲鵬翔.游戲引擎在游戲開發(fā)中的應(yīng)用分析[J].衛(wèi)星電視與寬帶多媒體,2019(23):16+18.馬曉萍,劉靜.基于Unity3D的坦克大戰(zhàn)游戲設(shè)計與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2017(06):168+171.1.2國內(nèi)外研究現(xiàn)狀在早些年間Unity3D的創(chuàng)始人最先開始的是在2004年創(chuàng)立的是一個叫OvertheEdgeEntertainment的公司,后來他在Mac上開發(fā)了一款名叫GooBall的游戲之后,他們便知道到了他們所用到的工具所隱藏的巨大價值,所以在2005年他們開始轉(zhuǎn)向做游戲引擎,這樣Unity1.0就誕生了。他們是在AppleInc.'sWorldwideDevelopersConference的大會上第一次發(fā)表的,是作為Mac端的擴展工具Unity發(fā)布,隨后的Unity就開始支持在Windows平臺使用了。Unity3D的各版本的發(fā)布日志可以看出,他們每個版本都做了哪些更新,新添了哪些功能等,其實通過它們的更新日志可以看出來最初期那些版本都是一個非常低端的東西。也可以看出來他們前期的調(diào)試和各種API的改變,所以并不見得比兩年前的戰(zhàn)火引擎強大,但到了2006年的時候,由于技術(shù)的不斷成熟他們榮獲了AppleDesignAwards的BestUseofMacOSXGraphics獎項。此時的他們還是個PC游戲的開發(fā)工具。就在2007年,iphone第一代發(fā)布了!此時放眼望去,居然只有Unity支持iphone,隨后的一段長的時間里,在那個時候開發(fā)iOS游戲的工具只有也僅有是Unity。2008年,Unity3D的公司名稱正式更名為UnityTechnologies,之后Unity3D被廣泛應(yīng)用著宣雨松.Unity3D游戲開發(fā)[M].北京:人民郵電出版社,2012.。宣雨松.Unity3D游戲開發(fā)[M].北京:人民郵電出版社,2012.時至今日,雖然國內(nèi)的很多游戲公司都已經(jīng)加深了對游戲引擎的了解,但是如果一些中小公司要自主開發(fā)一款游戲的話,開發(fā)過程也將會十分困難,而且得到的經(jīng)濟收益也不高,所以,我國的互聯(lián)網(wǎng)公司能擁有由自家研發(fā)的游戲引擎簡直少得可憐,大部分公司還是繼續(xù)使用著外國優(yōu)秀的游戲引擎。雖然這兩年來國內(nèi)還是會有一些比較優(yōu)秀的游戲作品出現(xiàn),但如果和國外的游戲大作相比較,還是會有一定的距離。而現(xiàn)在國內(nèi)很大一部分的游戲公司還是以代理國外優(yōu)秀游戲為主,也從而導(dǎo)致了資金外流,不僅如此,我國優(yōu)秀的本土傳統(tǒng)文化也會慢慢的缺失。隨著移動硬件設(shè)備的日益強大,移動平臺上的游戲也出現(xiàn)了驚人的增長。而移動領(lǐng)域存在諸多系統(tǒng),常用的有Android,WindowsMobile,iOS等,而在各個平臺上的移植和實現(xiàn)對于開發(fā)商來說是不經(jīng)濟的,然而目前國外優(yōu)秀的成熟引擎已經(jīng)成功的解決了這類問題,其中Unity3D在眾多游戲引擎中最突出,Unity3D中使用虛擬機技術(shù)使游戲編譯結(jié)果獨立于平臺執(zhí)行LamWingManWynne,LiuXingyi.Doesdataportabilityfacilitateentry?[J].InternationalJournalofIndustrialOrganization,2020,69(C).。因此如果有人有做游戲開發(fā)這方面工作的意向的,或者只想單純想自己做游戲來玩的,來熟練理解和掌握這些引擎的使用也會有十分大的好處。LamWingManWynne,LiuXingyi.Doesdataportabilityfacilitateentry?[J].InternationalJournalofIndustrialOrganization,2020,69(C).1.3游戲的主要研究內(nèi)容本次游戲設(shè)計主要分為游戲主菜單界面、游戲界面和游戲幫助界面這三大界面組成。游戲設(shè)計開始之前也需要先準(zhǔn)備好游戲所需要用到的的素材,比如坦克模型,障礙物,子彈的模型,各種圖片的設(shè)計和游戲里的各種音效等。游戲主菜單界面:是游戲最開始進入的界面,打開游戲成功后,可以在此界面選擇游戲的模式,其中有單人模式,自己一個為主角來進行游戲,同時可以選擇雙人模式,兩個人可以操控各自坦克來進行游戲。同時也可以選擇游戲幫助來快速了解本游戲的玩法。游戲界面:是游戲的主界面,玩家在這個界面進行游戲,這里包含關(guān)于敵人包括的AI的編寫,敵人的隨機出生地方,敵人中彈判斷等。還有主角的控制邏輯的編寫,主角出生地,主角中彈判斷和大本營中彈判斷等。游戲幫助界面:顯示文本介紹本游戲的基本玩法,游戲的基本規(guī)則說明,單人模式的主角控制按鍵和雙人模式的雙主角控制按鍵的說明等。1.4游戲開發(fā)環(huán)境與開發(fā)工具本次設(shè)計基本在Unity3D上進行開發(fā),Unity3D是一個可以讓任何人實現(xiàn)制作游戲的夢想的開發(fā)工具,開發(fā)出來的游戲也能運行在PC、MacOS、PS3、XBox360、Wii、IOS、Android等平臺,另外也可以利用UnityWebplayer插件來發(fā)布網(wǎng)頁游戲,以及支持開發(fā)線上游戲,是一個比較全面整合的專業(yè)游戲引擎YucongPan.DesignandDevelopmentofCardGamesBasedonUnity3D[C].InstituteofManagementScienceandIndustrialEngineering.Proceedingsof20192ndInternationalConferenceonMechanicalEngineering,IndustrialMaterialsandIndustrialElectronics(MEIMIE2019).InstituteofManagementScienceandIndustrialEngineering。Unity3D提供了簡單容易看懂的操作界面,可以使開發(fā)者一邊開發(fā)一邊通過界面實時看到自己目前制作的結(jié)果。而且也支持PhysX物理引擎、粒子系統(tǒng)等,降低了開發(fā)者游戲開發(fā)的知識需求,減少了游戲開發(fā)所需的時間和制作成本R.Andaru,B.K.Cahyono,G.Riyadi,etal.THECOMBINATIONOFTERRESTRIALLIDARANDUAVPHOTOGRAMMETRYFORINTERACTIVEARCHITECTURALHERITAGEVISUALIZATIONUSINGUNITY3DGAMEENGINE.2019,XLII-2/W17:39-44.。編寫腳本全程用C#語言即可,而我這次的設(shè)計所用到的編譯軟件是用MicrosoftVisualStudioYucongPan.DesignandDevelopmentofCardGamesBasedonUnity3D[C].InstituteofManagementScienceandIndustrialEngineering.Proceedingsof20192ndInternationalConferenceonMechanicalEngineering,IndustrialMaterialsandIndustrialElectronics(MEIMIE2019).InstituteofManagementScienceandIndustrialEngineeringR.Andaru,B.K.Cahyono,G.Riyadi,etal.THECOMBINATIONOFTERRESTRIALLIDARANDUAVPHOTOGRAMMETRYFORINTERACTIVEARCHITECTURALHERITAGEVISUALIZATIONUSINGUNITY3DGAMEENGINE.2019,XLII-2/W17:39-44.其中Unity3D軟件有以下幾點特點XiaolingShu.DesignandResearchofVirtualExperimentSystemforNetworkAttackandDefenseBasedonUnity3D[C].InformationEngineeringResearchInstitute,USA、XiaolingShu.DesignandResearchofVirtualExperimentSystemforNetworkAttackandDefenseBasedonUnity3D[C].InformationEngineeringResearchInstitute,USA、AsiaPacificHuman-ComputerInteractionResearchCenter,HongKong.Proceedingsof20184thInternationalConferenceonMechatronicSystemsandMaterialsApplication(ICMSMA2018).InformationEngineeringResearchInstitute,USA、AsiaPacificHuman-ComputerInteractionResearchCenter,HongKong資源導(dǎo)入:Unity支持所有主要文件格式,并能和大部分相關(guān)應(yīng)用程序協(xié)同工作。綜合編輯:在游戲的開發(fā)過程中,可以整體對每一個界面進行編輯,節(jié)約了一個個打開每個界面的時間,并且程序可以在界面中共享,提高了整體的效率。平臺發(fā)布多樣性:Unity可以在多個平臺上展現(xiàn)自己的作品,利用BuildSetting功能,可以選擇不同的平臺發(fā)布自己的作品。音效和視頻:實時三維圖形混合音頻流和視頻流。腳本:Unity支持3種腳本語言,其中有JavaScript,C#,Boo。而這次的坦克游戲的腳本主要用C#語言。Unityhub:Unityhub是一個包含了大部分Unity3D各種版本的下載器。拖動操作:Unity3D軟件中大部分的操作都可用拖動操作來實現(xiàn),開發(fā)效率能大大提高。

第2章游戲需求分析2.1可行性分析2.1.1經(jīng)濟可行性基于U3D坦克大戰(zhàn)的設(shè)計與實現(xiàn)是本人的畢業(yè)設(shè)計,從整個系統(tǒng)的設(shè)計到開發(fā)都由本人自己完成,本人在開發(fā)的過程不需要付費服務(wù),Unity3D這款軟件也是免費開放給學(xué)習(xí)者免費學(xué)習(xí),完全實現(xiàn)了零經(jīng)費輸出。在整個游戲開發(fā)完成并使用之后,玩家也可以直接下載程序包直接開始進行游戲,而游戲無論是下載游戲前還是下載游戲后,都不需要花費玩家一分錢,可以直接打開游戲就可以直接全程免費體驗。2.1.2技術(shù)可行性該游戲為本人的畢業(yè)設(shè)計,而本人已基本了解程序開發(fā)流程和U3D的基本用法,已經(jīng)具備開發(fā)一個難度不大的游戲的技術(shù)。此游戲使用的開發(fā)工具為Unity3D,大部分操作將在該軟件上完成。另外需要采用C#語言編寫腳本,而編譯工具為MicrosoftVisualStudio2012。2.1.3操作可行性在U3D上開發(fā)的程序可以直接windows系統(tǒng)下打開,里面簡明整潔的UI、易于操作的方式和無限的娛樂性是U3D坦克大戰(zhàn)的優(yōu)點。不管玩家曾經(jīng)是否有接觸過其他游戲的經(jīng)歷,完全上手這款游戲也完全不是問題。由此可見,操作方式和操作過程不會限制U3D坦克大戰(zhàn)游戲。2.2游戲的總體需求這款坦克大戰(zhàn)游戲是需要有三個界面:游戲主菜單界面、游戲界面和游戲幫助界面。游戲主菜單界面是玩家最開始所在的一個界面,可以讓玩家選擇開始游戲或者查看游戲幫助。游戲界面是玩家開始游戲后的界面,以供玩家在這個界面游戲,這里需要有地圖,玩家坦克和敵方坦克,還有需要添加各種腳本用以實現(xiàn)游戲。游戲幫助界面是為了讓玩家可以對這款游戲有一給詳細(xì)的了解,使玩家能快速上手這款游戲。2.3游戲的業(yè)務(wù)需求以下是對坦克大戰(zhàn)游戲的整體業(yè)務(wù)需求分析,如圖2-1坦克大戰(zhàn)游戲流程圖。圖2-1坦克大戰(zhàn)游戲流程圖玩家在打開游戲后將直接進入游戲的主菜單界面,其中上面有顯示游戲名稱。下方有可以供玩家進行選擇的三個選項,其中分別有:游戲幫助,單人模式,雙人模式。其中選擇游戲幫助的按鈕可以彈出一個窗口,里面有記載了關(guān)于本游戲的基本控制按鍵和游戲規(guī)則的說明。另外還有兩種開始游戲的方式,因為本游戲有兩種游戲模式,第一種是單人模式,只能由一個玩家進行游戲,其余的都是敵人。而第二種是雙人模式,可以由兩名玩家進行游戲,兩名玩家分別控制不同的坦克進行游戲。選擇任意游戲模式將直接開始游戲進入游戲界面,此時游戲已經(jīng)開始,玩家需要打倒其他敵方坦克來保護自己的大本營,游戲右方也會顯示擊倒敵方坦克的數(shù)量。如果大本營被破環(huán),游戲?qū)⒔Y(jié)束。也將會自動返回游戲主菜單界面。2.4游戲功能的需求分析這款坦克大戰(zhàn)游戲主要分成三個部分,其中有游戲主菜單界面,游戲界面和游戲幫助界面。游戲主菜單界面:主要兩種游戲模式并開始游戲的方法有單人模式和雙人模式,也可以選擇游戲幫助。游戲界面:主要包括單人進行游戲和雙人同時一起控制坦克進行游戲。游戲幫助界面:主要用來顯示游戲基本操作方法和游戲的規(guī)則。如圖2-2坦克大戰(zhàn)游戲功能模塊圖。圖2-2坦克大戰(zhàn)游戲功能模塊圖2.4.1坦克大戰(zhàn)游戲功能分析1.游戲主菜單界面:游戲開始:玩家可以在這個界面選擇游戲模式,選擇完成后可以直接跳到游戲界面直接開始游戲。游戲幫助打開:玩家在第一次玩這款游戲時可以在這個界面選擇游戲幫助來直接打開游戲幫助界面,便可以快速了解這款游戲基本操作和游戲規(guī)則。2.游戲界面:(1)單人模式:玩家在選擇單人模式時游戲只限有一名玩家進行游戲,此時只有一輛坦克孤軍奮戰(zhàn)保護大本營。(2)雙人模式:玩家在選擇雙人模式時游戲可以有兩名玩家同時控制兩輛坦克 進行協(xié)同作戰(zhàn),共同保護大本營。(3)玩家的移動和攻擊:編寫用鍵盤所對應(yīng)的鍵位控制玩家坦克的移動的腳本,編寫玩家控制坦克攻擊的腳本。(4)敵方坦克的AI:編寫敵方坦克自動運動和攻擊的腳本。(5)子彈:編寫子彈飛行方向和飛行速度的腳本,以及與碰撞的物體的識別。3.游戲幫助界面:(1)游戲介紹:顯示寫有游戲的基本操作和游戲規(guī)則的窗口。2.5UML系統(tǒng)建模統(tǒng)一建模語言(UML,UnifiedModelingLanguage)是面向?qū)ο筌浖臉?biāo)準(zhǔn)化建模語言,UML因其簡單、統(tǒng)一的特點,而且能表達軟件設(shè)計中的動態(tài)和度靜態(tài)信息,目前已成為可視化建模語言的工業(yè)標(biāo)準(zhǔn)MertOzkaya.AretheUMLmodellingtoolspowerfulenoughforpractitioners?Aliteraturereview.2019,13(5):338-354.。MertOzkaya.AretheUMLmodellingtoolspowerfulenoughforpractitioners?Aliteraturereview.2019,13(5):338-3用例圖坦克大戰(zhàn)游戲用例圖如圖2-3坦克大戰(zhàn)游戲用例圖。圖2-3坦克大戰(zhàn)游戲用例圖2.5.2用例圖規(guī)約表玩家的用例規(guī)約表:表2-1游戲幫助查看用例規(guī)約表用例編號2-1用例名稱游戲幫助查看功能描述當(dāng)玩家成功打開游戲后,可以選擇查看游戲幫助,用以快速了解游戲的基本控制的鍵位和游戲規(guī)則。執(zhí)行者玩家前置條件坦克大戰(zhàn)游戲正常運行。后置條件返回主菜單界面涉眾利益玩家基本路徑1.游戲打開成功后,選擇查看游戲幫助。2.游戲幫助打開成功后,顯示內(nèi)容。擴展如果查看結(jié)束后可以直接選擇返回,將返回到游戲主菜單界面。字段列表選項名稱,游戲介紹。業(yè)務(wù)規(guī)則不能修改里面的內(nèi)容。備注無表2-2單人游戲用例規(guī)約表用例編號2-2用例名稱單人游戲功能描述玩家成功打開游戲后可以選擇單人模式直接開始游戲,此時將只能由一名玩家進行游戲。執(zhí)行者玩家前置條件坦克大戰(zhàn)游戲正常運行后置條件返回主菜單界面涉眾利益玩家基本路徑1.在游戲主菜單界面選擇單人模式2.開始單人模式游戲擴展游戲結(jié)束后將直接返回游戲主菜單界面。字段列表選項名稱,擊倒敵方坦克的數(shù)量。續(xù)表2-2業(yè)務(wù)規(guī)則大本營被敵方坦克或者玩家坦克破環(huán)后游戲?qū)⒔Y(jié)束,并返回游戲主菜單界面。備注無表2-3雙人游戲用例規(guī)約表用例編號2-3用例名稱雙人游戲功能描述玩家成功打開游戲后也可以選擇雙人模式直接開始游戲,此時將可以由兩名玩家同時控制不同的坦克進行協(xié)同作戰(zhàn)游戲。執(zhí)行者玩家前置條件坦克大戰(zhàn)游戲正常運行后置條件返回主菜單界面涉眾利益玩家基本路徑1.在游戲主菜單界面選擇雙人模式2.開始雙人模式游戲擴展雙人模式下也可以只有一名玩家進行游戲,第二輛坦克不做控制也不受影響。字段列表選項名稱,擊倒敵方坦克的數(shù)量。業(yè)務(wù)規(guī)則大本營被敵方坦克或者玩家坦克破環(huán)后游戲?qū)⒔Y(jié)束,并返回游戲主菜單界面。備注無表2-4游戲分?jǐn)?shù)查看用例規(guī)約表用例編號2-4用例名稱游戲分?jǐn)?shù)查看功能描述玩家在游戲進行中可以實時查看到自己所擊倒敵方坦克的數(shù)量。執(zhí)行者玩家前置條件坦克大戰(zhàn)游戲正常運行,而且游戲已經(jīng)開始。后置條件返回主菜單界面涉眾利益玩家續(xù)表2-4基本路徑在游戲主菜單界面下選擇開始游戲(即選擇單人模式或選擇雙人模式,游戲?qū)⒅苯娱_始)。游戲界面右方顯示擊倒敵方坦克的數(shù)量。擴展無字段列表選項名稱,擊倒敵方坦克的數(shù)量。業(yè)務(wù)規(guī)則無備注無表2-5玩家坦克的移動用例規(guī)約表用例編號2-5用例名稱玩家坦克的移動功能描述游戲開始時玩家可以控制自己的坦克在地圖里自由移動。執(zhí)行者玩家前置條件坦克大戰(zhàn)游戲正常運行,而且游戲已經(jīng)開始。后置條件讀取玩家所在位置。涉眾利益玩家基本路徑1.在游戲主菜單界面下選擇開始游戲(即選擇單人模式或選擇雙人模式,游戲?qū)⒅苯娱_始)。2.控制坦克移動1.1玩家按下W鍵,坦克向上移動。1.2玩家按下S鍵,坦克向下移動。1.3玩家按下A鍵,坦克向左移動。1.4玩家按下D鍵,坦克向右移動。擴展在地圖內(nèi)可自由移動。字段列表鍵位,擊倒敵方坦克的數(shù)量。業(yè)務(wù)規(guī)則1.不能移動出地圖外。2.碰撞到障礙物時不能移動備注無表2-6玩家坦克的攻擊用例規(guī)約表用例編號2-6用例名稱玩家坦克的攻擊續(xù)表2-6功能描述玩家坦克按下空格鍵可以隨時隨地發(fā)動攻擊。執(zhí)行者玩家前置條件坦克大戰(zhàn)游戲正常運行,而且游戲已經(jīng)開始。后置條件子彈碰撞識別涉眾利益玩家基本路徑1.在游戲主菜單界面下選擇開始游戲(即選擇單人模式或選擇雙人模式,游戲?qū)⒅苯娱_始)。2.玩家按下空格鍵使坦克進行攻擊。擴展1.攻擊墻體障礙物可以使其破壞消失。2.比如草,水等障礙物,子彈的攻擊是可以穿過。3.可以攻擊自己的大本營,但游戲也會因此游戲失敗字段列表鍵位,擊倒敵方坦克的數(shù)量。業(yè)務(wù)規(guī)則1.每次攻擊由一定的時間間隔。2.攻擊出來的子彈也有一定的飛行速度。備注無2.6本章小結(jié)本章首先主要對坦克大戰(zhàn)游戲各方面的可行性進行了分析,接下來對坦克大戰(zhàn)游戲的業(yè)務(wù)需求進行詳細(xì)分析并且用業(yè)務(wù)流程圖分別展示了坦克大戰(zhàn)游戲的業(yè)務(wù)流程;通過功能模塊圖展示了坦克大戰(zhàn)游戲的功能需求;最后,為了更加直觀地向玩家展示坦克大戰(zhàn)游戲的各種功能,給出了用例圖并對各個用例用表格更加詳細(xì)地對坦克大戰(zhàn)游戲進行簡單明了的說明。

第3章游戲設(shè)計因為這款坦克大戰(zhàn)游戲是由游戲主菜單界面,游戲界面和游戲幫助界面這三個界面共同組成的,所以下面將分開三個界面進行設(shè)計和實現(xiàn)。3.1游戲主菜單界面3.1.1游戲主菜單界面的設(shè)計場景的搭建:首先需要創(chuàng)建并命名好第一個場景當(dāng)作游戲主菜單界面,設(shè)計好主攝像機,設(shè)置好攝像機高度,游戲的背景色調(diào)和地圖比例等,我這里是選擇16:10的比例。如圖3-1游戲主菜單界面的場景。如圖3-1游戲主菜單界面的場景UI設(shè)計:在Hierarchy面板按下鼠標(biāo)右鍵選擇創(chuàng)建UI_Image組件,此時將創(chuàng)建好一個UI圖片,該軟件也會自動生成UI設(shè)計所需要的兩個組件:Canvas和EventSystem,在調(diào)整好圖片在場景中的比例大小后,就可以Inspector面板里把事先準(zhǔn)備好的圖片素材拉入到創(chuàng)建的Image組件Script插件的SourceImage里。另外創(chuàng)建三個空的游戲物體,用來作為指針選擇的移動。設(shè)計完成后如圖3-2UI設(shè)計。圖3-2UI設(shè)計3.坦克指針腳本的編寫:為了實現(xiàn)指針的移動和實現(xiàn)場景的跳轉(zhuǎn),需要為坦克指針添加一個腳本。其中使用Input.GetKeyDown()函數(shù)監(jiān)聽玩家的鍵盤的輸入,同時記錄按下的鍵位的次數(shù)以此來實現(xiàn)坦克指針到底跳轉(zhuǎn)到哪一個空的物體上。而使用SceneManager.LoadScene()函數(shù)來實現(xiàn)場景之間的跳轉(zhuǎn)。如圖3-3實現(xiàn)指針跳轉(zhuǎn)的方法。圖3-3實現(xiàn)指針跳轉(zhuǎn)的方法這里需要注意的是,這里需要引用到創(chuàng)建好的三個空物體,所以需要在Inspector面板里的Scirpt的插件里拉入實體以供引用,不然軟件將會報錯,下面的其他游戲界面的開發(fā)大部分引用都是如此。如圖3-4引用物體圖3-4引用物體3.2游戲界面3.2.1游戲素材的導(dǎo)入,處理和場景的搭建游戲場景的搭建:首先需要創(chuàng)建并命名好第二個場景,同時設(shè)計好主攝像機,設(shè)置好攝像機高度,游戲的背景色調(diào)和地圖比例等,我這里是選擇5:4的比例,這樣看起來也會比較舒服,而且兩邊空余的部分也可以用來顯示生命值和得分。如圖3-5游戲場景。圖3-5游戲場景的搭建2.素材處理:把準(zhǔn)備好的游戲所需要的素材圖片,使用拖動操作將準(zhǔn)備好的素材拖入到已經(jīng)創(chuàng)建好了的工程里,并在Inspector面板里設(shè)置好它們的長寬高的值。然后把需要的素材拉到創(chuàng)建的場景里面,此時Hierarchy面板會自動生成它們相對應(yīng)的克隆體。同時可以使用多張圖片制作2D動畫,使游戲看起來更加生動。如圖3-6游戲素材處理。圖3-6游戲素材處理1.添加碰撞器:草叢是可以穿過也可以在里面隱藏,所以草叢不需要碰撞器,其他素材需要發(fā)生碰撞,所以需要添加一個Boxcollider2D的碰撞器,為了成功碰撞還需要在移動的一方添加一個Rigidboby2D的剛體,這樣才能實現(xiàn)碰撞效果。如圖3-7添加碰撞器。圖3-7添加碰撞器2.2D渲染層級設(shè)置:當(dāng)兩種元素重合在一起時需要考慮誰應(yīng)該覆蓋誰的問題,障礙物是因為加了碰撞器的緣故是不能進行交互穿插的,所以它們和坦克可以是同層級,但草叢是可以穿過并可以隱藏的,所以層級是比坦克高的。而無敵光環(huán)特效是在坦克底下顯示的,所以層級是比坦克低的。層級設(shè)置在Inspector面板里SpriteRenderer插件下的orderinlayer選項里設(shè)置數(shù)值,設(shè)置的數(shù)值越大,層級越高,越不會被覆蓋。設(shè)置完成后結(jié)果如圖3.82D渲染層級設(shè)置。圖3.82D渲染層級設(shè)置3.2.2玩家坦克的設(shè)計坦克的移動:此時需要為玩家的坦克添加一個腳本并打開編輯,使用的開發(fā)語言是C#,本人是用MicrosoftVisualStudio2012上進行腳本編寫和編譯。在控制左右上下移動時需要添加兩個監(jiān)聽器:floath=Input.GetAxisRaw("Horizontal")(監(jiān)聽玩家輸入的按鍵是使坦克垂直方向移動的監(jiān)聽器)和floatv=Input.GetAxisRaw("Vertical")(監(jiān)聽玩家輸入的按鍵是使坦克垂直方向移動的監(jiān)聽器),而且監(jiān)聽到了鍵盤輸入之后需要坦克進行移動,這是需要用到transform.Translate()函數(shù)。同時需要控制坦克移動時坦克的朝向,此時需要用到精靈渲染器(SpriteRenderer),使坦克方向轉(zhuǎn)變時圖片也能跟著切換,還需要添加一個移動優(yōu)先級,這樣可以防止坦克斜向運動。如圖3-9玩家坦克的移動 圖3-9坦克的移動坦克的攻擊:打開腳本編寫攻擊方法,使用Input.GetKeyDown(KeyCode.Space)函數(shù)可以把坦克攻擊鍵位設(shè)為空格鍵。同時需要有子彈產(chǎn)生,所以要引用子彈的預(yù)制體:publicGameObjectbullectPrefab;為了能產(chǎn)生實體的子彈,需要使用函數(shù):Instantiate(bullectPrefab,transform.position,Quaternion.Euler(transform.eulerAngles+bullectEulerAngles))。其中該函數(shù)最后一個的參數(shù)是一個四元數(shù)的參數(shù),為了讓子彈發(fā)射出去后能與坦克的朝向方向一致,所以子彈產(chǎn)生的角度=當(dāng)前坦克的角度+子彈應(yīng)該旋轉(zhuǎn)的角度:transform.eulerAngles+bullectEulerAngles。如圖3-10坦克的攻擊。圖3-10坦克的攻擊子彈的移動:此時需要在子彈的預(yù)制體上添加一個子彈移動的腳本,同樣也使用transform.Translate()函數(shù),初始化子彈速度可以使得子彈發(fā)出后可以沿當(dāng)前方向進行移動。坦克攻擊間隔:為了游戲的公平和游戲的平衡,還需要在坦克的攻擊加上時間間隔,相當(dāng)于就是攻擊CD。每次攻擊后timeVal=0,使用if語句使攻擊間隔時長為0.4秒:if(timeVal>=0.4f){Attack();}else{timeVal+=Time.deltaTime;}。如圖3-11坦克攻擊間隔CD。圖3-11坦克攻擊CD子彈的觸發(fā)方法:因為子彈在碰到不同的物體之后需要觸發(fā)不同的方法,所以需要為子彈加入碰撞器和剛體的組件,因為此時子彈需要用到觸發(fā)器,所以需要把碰撞器里的istrigger的選項勾上。因為子彈需要識別出所碰撞的物體是什么從而調(diào)用不同的方法,所以需要在Inspector面板里為各種物體加入標(biāo)簽,以供子彈分辨。如圖3-12添加標(biāo)簽。圖3-12添加標(biāo)簽然后在子彈的腳本里使用swich語句編寫子彈在碰到不同物體時所調(diào)用的不同的方法。其中這里的子彈也區(qū)分為玩家的子彈和敵人的子彈,子彈在碰撞到玩家的坦克或敵方的坦克時還需要區(qū)分是玩家的子彈還是敵人的子彈,所以需要定義一個bool類型的子彈加以區(qū)分玩家的子彈和敵方的子彈。圖3-13子彈觸發(fā)方法的代碼玩家坦克的無敵方法和死亡方法:玩家剛開始游戲時,或者復(fù)活時,身上會有一個無敵光環(huán)特效加身,且不受到任何敵人的傷害。在敵方坦克的子彈碰撞到玩家時玩家坦克將會消失,同時顯示會爆炸特效。這里因為只有玩家坦克會有無敵光環(huán),所以可以將特效拖入到玩家坦克的物體里,這樣可以不用每次都需要調(diào)用光環(huán)特效,提高游戲性能。如圖3-14玩家的無敵和死亡。圖3-14玩家的無敵和死亡玩家坦克和敵方坦克的產(chǎn)生:因為雙方坦克都是共同用一個特效,所以只需在出生特效里添加一個腳本里面編寫產(chǎn)生方法即可,使用Instantiate()函數(shù)產(chǎn)生坦克。這里的玩家的出生特效和敵人的出生特效我用的是同一個特效,為了優(yōu)化游戲,所以要區(qū)分出生特效產(chǎn)生的玩家還是敵人,還需添加一個bool類型的變量以供區(qū)分。如圖3-15坦克的產(chǎn)生1,圖3-16坦克的產(chǎn)生2。圖3-15坦克的產(chǎn)生1圖3-15坦克的產(chǎn)生23.2.3敵方坦克的設(shè)計敵方坦克的AI:為敵方坦克添加腳本,而敵方坦克和玩家坦克功能基本相同,所以可以直接復(fù)制并加以修改即可。首先需要刪除鍵盤的監(jiān)聽函數(shù),為其加上一個隨機函數(shù)讓其模仿玩家的鍵盤輸入。如圖3-17敵人移動的隨機函數(shù)。圖3-17敵人移動的隨機函數(shù)隨機生成兩種敵人:為了增加游戲的趣味性,可以生成兩種敵人坦克,讓它們有不同的屬性值,比如運動速度,攻擊CD等。而在上面的寫好的出生特效上為一個敵人的產(chǎn)生添加一個隨機函數(shù)即可。如圖3-18隨機產(chǎn)生敵人1,圖3-19隨機產(chǎn)生敵人2。圖3-18產(chǎn)生隨機敵人1圖3-19產(chǎn)生隨機敵人2敵方坦克的死亡方法:當(dāng)玩家子彈與敵方坦克發(fā)生碰撞后敵方坦克消失同時產(chǎn)生爆炸特效,也是在敵人腳本里編寫一個Die()方法,使用Instantiate函數(shù)產(chǎn)生爆炸特效。如圖3-20敵方坦克的死亡。圖3-20敵方坦克的死亡3.2.4初始化地圖地圖的產(chǎn)生:在完成好前面的素材處理和腳本編寫后,可以開始創(chuàng)建玩家游戲的地圖,首先創(chuàng)建新的空物體用來裝載創(chuàng)建地圖的功能并為其添加腳本編寫隨機生成地圖的函數(shù),為了不讓每次開始游戲時地圖都一樣,這里使用隨機函數(shù)使其在地圖范圍內(nèi)隨機生成障礙物,草,墻等物體,以達到每次游戲開始時地圖都不一樣。同時為了不讓玩家或者敵人拋出地圖外,需要在地圖外圍生成空氣墻。如圖3-21地圖1,圖3-22地圖2,每次將隨機產(chǎn)生不同地圖。圖3-21地圖1圖3-22地圖2坦克的產(chǎn)生:玩家敵人的產(chǎn)生位置和敵人的增加:使用Instantiate()函數(shù),函數(shù)中的參數(shù)2是在地圖相對的產(chǎn)生位置,只需設(shè)置好數(shù)值就能固定在一個點產(chǎn)生。如圖3-23坦克的產(chǎn)生。圖3-23坦克的產(chǎn)生顯示得分和生命值:為了讓玩家可以清楚看到自己的生命值和得分,可以在游戲兩側(cè)進行設(shè)計。所以也是需要創(chuàng)建UI_Image圖片,同時為了顯示實時的得分情況和剩余的生命值,需要新創(chuàng)建UI_Text文本。如圖3-24顯示得分和生命值。圖3-24顯示得分和生命值玩家狀態(tài)的管理:創(chuàng)建一個新的空物體,添加腳本,在這里編寫生命值,得分的總數(shù)和游戲輸贏的判斷的代碼。如果玩家生命值為0的時候死亡,游戲?qū)⒅苯咏Y(jié)束并返回第一個場景,而大本營被破環(huán)游戲也將直接結(jié)束并返回第一個場景。如圖3-25玩家狀態(tài)管理。圖3-25玩家狀態(tài)管理游戲結(jié)束的UI設(shè)計:為了讓玩家更加直觀的看到游戲已經(jīng)結(jié)束,可以在游戲結(jié)束時顯示一個畫面,此時需要創(chuàng)建一個新的UI_Image,設(shè)置好圖片大小,拖入準(zhǔn)備好的結(jié)束圖片即可。如圖3-26游戲結(jié)束。圖3-26游戲結(jié)束3.2.5添加音效1.添加音效:為了增添游戲的趣味性,需要為游戲開始時、坦克爆炸時、坦克發(fā)出子彈時、子彈碰到障礙物時和子彈摧毀大本營時等等添加相應(yīng)的音效,這就需要為上面物體加上AudioSourse組件,并拖入準(zhǔn)備好了的音頻素材到該組件里AudioClip中。如圖3-27添加音效。圖3-27添加音效3.3游戲幫助界面1.游戲幫助界面設(shè)計:創(chuàng)建一個新的場景,并創(chuàng)建一個新的UI文本,里面顯示游戲幫助的文本內(nèi)容。且為文本添加一個腳本,用來設(shè)置一個返回到游戲主菜單界面的鍵位。如圖3-28游戲幫助界面。圖3-28游戲幫助界面3.4實現(xiàn)界面跳轉(zhuǎn)為了讓各個界面實現(xiàn)跳轉(zhuǎn),C#里有已經(jīng)封裝打包好的方法可以供我們直接,這時只需在開頭聲明引用usingUnityEngine.SceneManagement;并且使用SceneManager.LoadScene()函數(shù)即可。如圖3-29實現(xiàn)從主菜單界面跳轉(zhuǎn)到其他界面的方法。圖3-29實現(xiàn)從主菜單界面跳轉(zhuǎn)的方法3.5本章小結(jié)本章對坦克大戰(zhàn)游戲的游戲主菜單界面,游戲界面,游戲幫助界面三個主要界面進行了詳細(xì)的開發(fā)過程和步驟方法的說明,同時也會貼上對應(yīng)的效果圖,使其整個開發(fā)過程詳細(xì),直觀。最后也會給出界面完成后的效果圖。

第4章游戲總體實現(xiàn)4.1游戲主菜單界面的實現(xiàn)這是玩家在打開游戲成功后所看到的第一個界面,坦克指針最開始會停留在中間的那個選項,坦克指針?biāo)诘拿恳粋€位置對應(yīng)一個選項,玩家可以通過按下鍵盤W和S進行上下移動,按下空格鍵表示確定選擇。開始游戲和查看游戲幫助都可以在這個界面上進行選擇,只有首先在這個界面上發(fā)出選擇命令才能實現(xiàn)其他界面的跳轉(zhuǎn)。選擇單人模式:選擇第一個選項,完成點擊事件后,將自動從游戲主菜單界面跳轉(zhuǎn)到游戲界面開始游戲。選擇雙人模式:選擇第二個選項,完成點擊事件后,將自動從游戲主菜單界面跳轉(zhuǎn)到游戲界面開始游戲。選擇游戲幫助:選擇第三個選項,完成點擊事件后,此時將直接打開游戲幫助的界面,可直接瀏覽游戲介紹。如圖4-1游戲主菜單界面圖4-1游戲主菜單界面4.2游戲界面的實現(xiàn)這是玩家在游戲主菜單界面完成選項選擇后開始游戲所看到的一個界面,是本游戲的主體,玩家也將在這個界面進行有趣的游戲,大部分的腳本代碼都在這個界面實現(xiàn)。在游戲結(jié)束時也能跳轉(zhuǎn)回到游戲主菜單界面重新等待選擇。開始單人模式游戲:此時在場上只有且僅有一輛玩家的坦克,初始生命值只為3,玩家需要以一己之力保護好大本營免遭破壞,生命值為零時游戲結(jié)束,大本營被破壞也將游戲結(jié)束,同時也需要擊倒更多的敵方坦克來獲得更高的分?jǐn)?shù)。如圖4-2單人模式游戲界面。圖4-2單人模式游戲界面開始雙人模式游戲:此時在場上會有了兩輛不同玩家的坦克,顏色也各不相同。玩家1和玩家2可以同時進行游戲一起協(xié)力保護大本營免遭破壞,同時他們的生命值是共享的,生命值為5,生命值低于零后游戲也將直接結(jié)束。玩家雙方可以一起擊倒更多的敵方坦克來獲得更高的分?jǐn)?shù)。如圖4-3雙人模式游戲界面。圖4-3雙人模式游戲界面4.3游戲幫助界面的實現(xiàn)這是玩家在游戲主菜單界面完成選項選擇后查看游戲幫助所看到的一個界面,里面將詳細(xì)介紹了游戲的規(guī)則,玩家1和玩家2不同的鍵位控制。查看完成后也可以按下空格鍵直接返回到游戲主菜單界面。如圖4-3游戲幫助界面。圖4-4游戲幫助界面4.4本章小結(jié)本章主要是對坦克大戰(zhàn)游戲的總體實現(xiàn)的展現(xiàn),在這里可以看到每個界面的實現(xiàn)情況,每個界面也會配有一些文字說明,最后也能給出各個界面的截圖來展現(xiàn)游戲最真實實現(xiàn)的效果。

第5章游戲測試5.1游戲測試的目的找出軟件中的漏洞是系統(tǒng)測試的目的,游戲的漏洞可能存在于軟件、功能、過程、數(shù)據(jù)和編碼中,我們需要在這些方面上進行測試以找到系統(tǒng)的漏洞并修復(fù)。在游戲設(shè)計和實現(xiàn)過程中檢查出來的錯誤和缺陷需要在系統(tǒng)試運行當(dāng)中通過游戲測試來實現(xiàn),所以這個階段是軟件開發(fā)中必不可少的部分??偠灾瑴y試就是發(fā)現(xiàn)問題并進行改進,從而提升軟件產(chǎn)品的質(zhì)量王子.3D王子.3D測試之游戲測試篇[J].大眾硬件,2003(02):109-112.5.2游戲測試的意義在如今游戲泛濫的信息時代,大部分游戲作品的質(zhì)量參差不齊,因此,為了杜絕低質(zhì)量的游戲的蔓延,游戲測試是一個不可或缺的階段。經(jīng)過一系列的嚴(yán)格測試,可以找出游戲中難以發(fā)現(xiàn)的漏洞,有利于提高坦克大戰(zhàn)的軟件質(zhì)量,使用戶的體驗感更加好,第一印象很重要,能體現(xiàn)出開發(fā)人員的誠意,可以給廣大玩家留下一個好的最初印象,也有利于游戲的推廣。5.3測試用例及結(jié)果坦克大戰(zhàn)游戲測試分為游戲主菜單界面測試、游戲界面測試和游戲幫助界面測試。表5-1游戲主菜單界面測試用例及結(jié)果用例編號用例名稱測試目的測試結(jié)果A-1TestPointer測試界面里的指針指向會不會出現(xiàn)混亂無論玩家按下多少次W和S鍵都不會出現(xiàn)混亂A-2TestOption測試確定選項后是否發(fā)生界面跳轉(zhuǎn)玩家按下空格鍵后能發(fā)生界面跳轉(zhuǎn)續(xù)表5-1A-3TestInterface測試跳轉(zhuǎn)界面后是否正確跳轉(zhuǎn)的界面正確5-2游戲界面用例及結(jié)果用例編號用例名稱測試目的測試結(jié)果B-1TestMap測試每次開始游戲時是否能隨機產(chǎn)生新地圖玩家每次開始游戲后都能產(chǎn)生不同新地圖B-2TestLocation測試玩家和敵人出生位置是否固定玩家和敵人出生位置始終不變B-3TestMove測試玩家能否控制玩家坦克移動玩家能控制玩家坦克進行移動B-4TestAttack測試玩家坦克能否正常發(fā)出子彈玩家坦克能正常發(fā)出子彈且去坦克移動方向一致B-5TestInvincible測試玩家坦克在有無敵光環(huán)的時候敵方坦克能否對其進行傷害敵方坦克的子彈打中有無敵光環(huán)的玩家坦克時并沒有其他效果B-6TestResurgence測試玩家坦克生命值不為零之前能否正常復(fù)活,敵人能否正常復(fù)活玩家坦克和敵人能正常復(fù)活B-7TestScore測試玩家的得分顯示是否出錯玩家的得分顯示沒有出錯B-8TestLife測試玩家的生命值顯示是否出錯玩家的生命值顯示沒有出錯B-9TestBullet測試玩家子彈和敵人子彈是否出現(xiàn)混亂并且能否識別所碰撞到的物體玩家子彈和敵人子彈沒有出現(xiàn)混亂并且能識別所碰撞到的物體B-10TestEffect測試特效能否顯示且顯示是否出錯特效能正常顯示且顯示沒有出錯續(xù)表5-2B-11TestMusic測試游戲中是否發(fā)出游戲音效且沒有出錯游戲中能發(fā)出各種游戲音效且沒有出錯B-12TestCollision測試玩家坦克和敵方坦克是否能穿過障礙物、水、墻、空氣墻、大本營玩家坦克和敵方坦克不能穿過障礙物、水、墻、空氣墻、大本營B-13TestEnd測試玩家坦克生命值為零或大本營被破壞時游戲能否結(jié)束,且結(jié)束提示界面能否顯示玩家坦克生命值為零或大本營被破壞時游戲能結(jié)束,且結(jié)束提示界面能顯示B-14TestReturn測試游戲結(jié)束后能否自動返回游戲主菜單界面游戲結(jié)束后能自動返回游戲主菜單界面B-15TestModel測試雙人模式是否能正常游戲雙人模式能正常游戲表5-3游戲幫助界面用例及結(jié)果用例編號用例名稱測試目的測試結(jié)果C-1TestHple測試游戲幫助界面能否顯示且顯示沒有錯亂游戲幫助界面能正常顯示且顯示沒有錯亂C-2TestReturn測試玩家按下空格鍵后能否自動返回游戲主菜單界面玩家按下空格鍵后能自動返回游戲主菜單界面5.4本章小結(jié)本章首先闡述了系統(tǒng)測試的目的以及意義,之后給出了測試用例,最后進行多次反復(fù)測試證明了坦克大戰(zhàn)游戲的大部分功能是沒有問題的。

第6章結(jié)束語6.1全文總結(jié)通過這幾個月不懈的努力,基于坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)到這里基本結(jié)束了。基于U3D的坦克大戰(zhàn)游戲在界面設(shè)計上基本使用黑色作為背景色調(diào),向用戶展現(xiàn)了一種簡潔大方。C#是這款坦克大戰(zhàn)游戲的開發(fā)語言。而C#由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言,它安全,穩(wěn)定,簡單,所以也能提高游戲開發(fā)速度。同時使用了非常優(yōu)秀且簡易的Unity3D的游戲引擎作為平臺來進行開發(fā),也極大提高了開發(fā)的效率。其實我選擇Unity3D最主要的因素是因為這款軟件的個人用戶版本身是免費的,而且里面提供的功能也十分的強大和完整。目前,基于Unity3D的坦克大戰(zhàn)游戲在這些工具的支持下基本都能運作。6.2課題展望由于受到知識量不足的條件的約束,所以基于U3D的坦克大戰(zhàn)游戲沒有更多其它的功能,如果有機會和條件,基于U3D的坦克大戰(zhàn)游戲會適當(dāng)加入更好玩的游戲模式,比如闖關(guān)模式等,或者通過網(wǎng)絡(luò)用不同的設(shè)備不同的地點實時共同進行游戲。以此來增加本游戲的趣味性和可玩性;由于時間問題,基于U3D的坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)的界面可能有點簡單,后期也會優(yōu)化各個界面;最后,通過這次設(shè)計我獲得了很多經(jīng)驗,希望以后能有更多的機會去開發(fā)更多更好玩的游戲。

參考文獻[1]程彬彬,王明鑫,商楠.淺談游戲開發(fā)平臺Unity3D的應(yīng)用與發(fā)展前景[J].通訊世界,2016(14):236.[2]亞當(dāng)斯.游戲設(shè)計基礎(chǔ)[M].北京:機械工業(yè)出版社,2009.[3]王欣.計算機游戲設(shè)計課程實訓(xùn)案例庫建設(shè)研究[J].計算機教育,2016,(02):110-112.[4]吳亞峰?于復(fù)興.Unity3D游戲開發(fā)技術(shù)詳解與典型案例[M].北京:人民郵電出版社,2012.[5]李蘭友楊曉光.VisualC#.NET程序設(shè)計[M].?北京:清華大學(xué)出版社,2004.5.[6]中國音像與數(shù)字出版協(xié)會游戲出版工作委員.2019年中國游戲產(chǎn)業(yè)報告[R].2019.[7]孫煦東.游戲改變教育?[N].中國教師報,2015-03-04(003).[8]曲鵬翔.游戲引擎在游戲開發(fā)中的應(yīng)用分析[J].衛(wèi)星電視與寬帶多媒體,2019(23):16+18.[9]馬曉萍,劉靜.基于Unity3D的坦克大戰(zhàn)游戲設(shè)計與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2017(06):168+171.[10]宣雨松.Unity3D游戲開發(fā)[M].北京:人民郵電出版社,2012.[11]LamWingManWynne,LiuXingyi.Doesdataportabilityfacilitateentry?[J].InternationalJournalofIndustrialOrganization,2020,69(C).[12]YucongPan.DesignandDevelopmentofCardGamesBasedonUnity3D[C].InstituteofManagementScienceandIndustrialEngineering.Proceedingsof20192ndInternationalConferenceonMechanicalEngineering,IndustrialMaterialsandIndustrialElectronics(MEIMIE2019).InstituteofManagementScienceandIndustrialEngineering:計算機科學(xué)與電子技術(shù)國際學(xué)會(ComputerScienceandElectronicTechnologyInternationalSociety),2019:399-406.[13]R.Andaru,B.K.Cahyono,G.Riyadi,etal.THECOMBINATIONOFTERRESTRIALLIDARANDUAVPHOTOGRAMMETRYFORINTERACTIVEARCHITECTURALHERITAGEVISUALIZATIONUSINGUNITY3DGAMEENGINE.2019,XLII-2/W17:39-44.[14]XiaolingShu.DesignandResearchofVirtualExperimentSystemforNetworkAttackandDefenseBasedonUnity3D[C].InformationEngineeringResearchInstitute,USA、AsiaPacificHuman-ComputerInteractionResearchCenter,HongKong.Proceedingsof20184thInternationalConferenceonMechatronicSystemsandMaterialsApplication(ICMSMA2018).InformationEngineeringResearchInstitute,USA、AsiaPacificHuman-ComputerInteractionResearchCenter,HongKong:智能信息技術(shù)應(yīng)用學(xué)會,2018:113-118.[15]MertOzkaya.AretheUMLmodellingtoolspowerfulenoughforpractitioners?Aliteraturereview.2019,13(5):338-354.[16]王子.3D測試之游戲測試篇[J].大眾硬件,2003(02):109-112.致謝寫到這里,已是坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)的尾聲了,一個系統(tǒng)的設(shè)計與實現(xiàn)不單單是自己一個人能夠完成的,還需要他人的幫助,如指導(dǎo)老師、在校時的其他任課老師和同學(xué)等,所以,我非常感謝他們在我做這個游戲期間有形和無形的幫助,有些他們無形的幫助或許我感覺不到,但對我有著非凡的影響。在這里我需要特別感謝梁老師了,雖然之前他沒有任職過我的任課老師,但最后作為我的指導(dǎo)老師卻能很快的認(rèn)識我們這班同學(xué)且隨時隨地能及時無誤的幫我解決我所遇到的問題,可以說他是我做坦克大戰(zhàn)游戲的設(shè)計與實現(xiàn)幫助最大的人了。最后,感謝廣州大學(xué)松田學(xué)院為我們提供學(xué)習(xí)的平臺,感謝廣大松田計算機科學(xué)與技術(shù)各個科任老師的辛勤付出。

HYPERLINK如何給電腦重做系統(tǒng)給電腦重做系統(tǒng),自己學(xué)學(xué),可少花錢,哈哈[圖]

一、準(zhǔn)備工作:

如何重裝電腦系統(tǒng)

首先,在啟動電腦的時候按住DELETE鍵進入BIOS,選擇AdvancedBIOSFeatures選項,按Enter鍵進入設(shè)置程序。選擇FirstBootDevice選項,然后按鍵盤上的PageUp或PageDown鍵將該項設(shè)置為CD-ROM,這樣就可以把系統(tǒng)改為光盤啟動。

其次,退回到主菜單,保存BIOS設(shè)置。(保存方法是按下F10,然后再按Y鍵即可)

1.準(zhǔn)備好WindowsXPProfessional簡體中文版安裝光盤,并檢查光驅(qū)是否支持自啟動。

2.可能的情況下,在運行安裝程序前用磁盤掃描程序掃描所有硬盤檢查硬盤錯誤并進行修復(fù),否則安裝程序運行時如檢查到有硬盤錯誤即會很麻煩。

3.用紙張記錄安裝文件的產(chǎn)品密匙(安裝序列號)。

4.可能的情況下,用驅(qū)動程序備份工具(如:驅(qū)動精靈2004V1.9Beta.exe)將原WindowsXP下的所有驅(qū)動程序備份到硬盤上(如∶F:Drive)。最好能記下主板、網(wǎng)卡、顯卡等主要硬件的型號及生產(chǎn)廠家,預(yù)先下載驅(qū)動程序備用。

5.如果你想在安裝過程中格式化C盤或D盤(建議安裝過程中格式化C盤),請備份C盤或D盤有用的數(shù)據(jù)。

二、用光盤啟動系統(tǒng):

(如果你已經(jīng)知道方法請轉(zhuǎn)到下一步),重新啟動系統(tǒng)并把光驅(qū)設(shè)為第一啟動盤,保存設(shè)置并重啟。將XP安裝光盤放入光驅(qū),重新啟動電腦。剛啟動時,當(dāng)出現(xiàn)如下圖所示時快速按下回車鍵,否則不能啟動XP系統(tǒng)光盤安裝。如果你不知道具體做法請參考與這相同的-->如何進入純DOS系統(tǒng):

光盤自啟動后,如無意外即可見到安裝界面,將出現(xiàn)如下圖1所示

查看原圖

全中文提示,“要現(xiàn)在安裝WindowsXP,請按ENTER”,按回車鍵后,出現(xiàn)如下圖2所示

查看原圖

許可協(xié)議,這里沒有選擇的余地,按“F8”后如下圖3

HYPERLINK

查看原圖

這里用“向下或向上”方向鍵選擇安裝系統(tǒng)所用的分區(qū),如果你已格式化C盤請選擇C分區(qū),選擇好分區(qū)后按“Enter”鍵回車,出現(xiàn)下圖4所示

查看原圖

這里對所選分區(qū)可以進行格式化,從而轉(zhuǎn)換文件系統(tǒng)格,或保存現(xiàn)有文件系統(tǒng),有多種選擇的余地,但要注意的是NTFS格式可節(jié)約磁盤空間提高安全性和減小磁盤碎片但同時存在很多問題MacOS和98/Me下看不到NTFS格式的分區(qū),在這里選“用FAT文件系統(tǒng)格式化磁盤分區(qū)(快),按“Enter”鍵回車,出現(xiàn)下圖5所示

查看原圖

格式化C盤的警告,按F鍵將準(zhǔn)備格式化c盤,出現(xiàn)下圖6所示

HYPERLINK

查看原圖

由于所選分區(qū)C的空間大于2048M(即2G),FAT文件系統(tǒng)不支持大于2048M的磁盤分區(qū),所以安裝程序會用FAT32文件系統(tǒng)格式對C盤進行格式化,按“Enter”鍵回車,出現(xiàn)下圖7所示

查看原圖圖7中正在格式化C分區(qū);只有用光盤啟動或安裝啟動軟盤啟動XP安裝程序,才能在安裝過程中提供格式化分區(qū)選項;如果用MS-DOS啟動盤啟動進入DOS下,運行i386\winnt進行安裝XP時,安裝XP時沒有格式化分區(qū)選項。格式化C分區(qū)完成后,出現(xiàn)下圖8所示

被過濾廣告

查看原圖

圖8中開始復(fù)制文件,文件復(fù)制完后,安裝程序開始初始化Windows配置。然后系統(tǒng)將會自動在15秒后重新啟動。重新啟動后,出現(xiàn)下圖9所示

HYPERLINK

查看原圖

9

查看原圖

過5分鐘后,當(dāng)提示還需33分鐘時將出現(xiàn)如下圖10

HYPERLINK

查看原圖

區(qū)域和語言設(shè)置選用默認(rèn)值就可以了,直接點“下一步”按鈕,出現(xiàn)如下圖11

查看原圖

這里輸入你想好的姓名和單位,這里的姓名是你以后注冊的用戶名,點“下一步”按鈕,出現(xiàn)如下圖12

HYPERLINK

查看原圖

如果你沒有預(yù)先記下產(chǎn)品密鑰(安裝序列號)就大件事啦!這里輸入安裝序列號,點“下一步”按鈕,出現(xiàn)如下圖13

HYPERLINK

查看原圖

安裝程序自動為你創(chuàng)建又長又難看的計算機名稱,自己可任意更改,輸入兩次系統(tǒng)管理員密碼,請記住這個密碼,Administrator系統(tǒng)管理員在系統(tǒng)中具有最高權(quán)限,平時登陸系統(tǒng)不需要這個帳號。接著點“下一步”出現(xiàn)如下圖14

查看原圖

日期和時間設(shè)置不用講,選北京時間,點“下一步”出現(xiàn)如下圖15

HYPERLINK

查看原圖

開始安裝,復(fù)制系統(tǒng)文件、安裝網(wǎng)絡(luò)系統(tǒng),很快出現(xiàn)如下圖16

查看原圖

讓你選擇網(wǎng)絡(luò)安裝所用的方式,選典型設(shè)置點“下一步”出現(xiàn)如下圖17

HYPERLINK

查看原圖

點“下一步”出現(xiàn)如下圖18

HYPERLINK

查看原圖

繼續(xù)安裝,到這里后就不用你參與了,安裝程序會自動完成全過程。安裝完成后自動重新啟動,出現(xiàn)啟動畫面,如下圖19

HYPERLINK

查看原圖

第一次啟動需要較長時間,請耐心等候,接下來是歡迎使用畫面,提示設(shè)置系統(tǒng),如下圖20

查看原圖

點擊右下角的“下一步”按鈕,出現(xiàn)設(shè)置上網(wǎng)連接畫面,如下圖21所示

HYPERLINK

查看原圖

點擊右下角的“下一步”按鈕,出現(xiàn)設(shè)置上網(wǎng)連接畫面,如下圖21所示

查看原圖

這里建立的寬帶撥號連接,不會在桌面上建立撥號連接快捷方式,且默認(rèn)的撥號連接名稱為“我的ISP”(自定義除外);進入桌面后通過連接向?qū)Ы⒌膶拵芴栠B接,在桌面上會建立撥號連接快捷方式,且默認(rèn)的撥號連接名稱為“寬帶連接”(自定義除外)。如果你不想在這里建立寬帶撥號連接,請點擊“跳過”按鈕。

在這里我先創(chuàng)建一個寬帶連接,選第一項“數(shù)字用戶線(ADSL)或電纜調(diào)制解調(diào)器”,點擊“下一步”按鈕,如下圖22所示

HYPERLINK

查看原圖

目前使用的電信或聯(lián)通(ADSL)住宅用戶都有帳號和密碼的,所以我選“是,我使用用戶名和密碼連接”,點擊“下一步”按鈕,如下圖23所示

查看原圖

輸入電信或聯(lián)通提供的帳號和密碼,在“你的ISP的服務(wù)名”處輸入你喜歡的名稱,該名稱作為撥號連接快捷菜單的名稱,如果留空系統(tǒng)會自動創(chuàng)建名為“我的ISP”作為該連接的名稱,點擊“下一步”按鈕,如下圖24所示

查看原圖

已經(jīng)建立了撥號連接,微軟當(dāng)然想你現(xiàn)在就激活XP啦,不過即使不激活也有30天的試用期,又何必急呢?選擇“否,請等候幾天提醒我”,點擊“下一步”按鈕,如下圖25所示

HY

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論