基于安卓系統(tǒng)的卡通風(fēng)格3d賽車游戲設(shè)計(jì)與開發(fā)_第1頁
基于安卓系統(tǒng)的卡通風(fēng)格3d賽車游戲設(shè)計(jì)與開發(fā)_第2頁
基于安卓系統(tǒng)的卡通風(fēng)格3d賽車游戲設(shè)計(jì)與開發(fā)_第3頁
基于安卓系統(tǒng)的卡通風(fēng)格3d賽車游戲設(shè)計(jì)與開發(fā)_第4頁
基于安卓系統(tǒng)的卡通風(fēng)格3d賽車游戲設(shè)計(jì)與開發(fā)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 基于安卓系統(tǒng)的卡通風(fēng)格3d賽車游戲設(shè)計(jì)與開發(fā) 目 錄摘 要1ABSTRACT2第1章 緒論21.1 基于安卓系統(tǒng)的手機(jī)賽車游戲開發(fā)背景31.2 國內(nèi)外賽車手機(jī)游戲發(fā)展現(xiàn)狀31.3 解決的主要問題41.4 本文的主要工作51.5 論文的組織結(jié)構(gòu)5第2章 基于安卓系統(tǒng)的手機(jī)賽車游戲需求分析52.1系統(tǒng)概述72.1.1項(xiàng)目背景72.1.2項(xiàng)目說明72.1.3整體系統(tǒng)概述82.2 Unity3D游戲引擎簡介82.2.1 Unity3D圖形用戶界面(GUI)82.2.2 Unity3D游戲腳本82.2.3 Unity3D物理引擎82.2.4 Unity3D跨平臺(tái)性82.3目標(biāo)和解決的問題82.4需求問

2、題描述82.4.1功能性需求112.4.2非功能性需求12第3章 基于安卓系統(tǒng)的手機(jī)賽車游戲架構(gòu)設(shè)計(jì)133.1設(shè)計(jì)目標(biāo)和原則133.2技術(shù)架構(gòu)設(shè)計(jì)133.2.1游戲元素143.2.2游戲規(guī)則143.2.3游戲任務(wù)143.2.4游戲關(guān)卡143.2.5其他153.3游戲功能架構(gòu)153.3.1 游戲功能組成153.3.2 游戲功能流程16第4章 基于安卓系統(tǒng)的手機(jī)賽車游戲系統(tǒng)詳細(xì)設(shè)計(jì)174.1 賽車游戲模塊劃分174.2 各模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)184.2.1 賽車模塊詳細(xì)設(shè)計(jì)184.2.2 數(shù)據(jù)模塊詳細(xì)設(shè)計(jì)204.2.3 控制模塊詳細(xì)設(shè)計(jì)21第5章 安卓系統(tǒng)手機(jī)賽車游戲系統(tǒng)實(shí)現(xiàn)與測試235.1總體實(shí)現(xiàn)

3、235.2模塊實(shí)現(xiàn)244.2.1 賽車運(yùn)動(dòng)模塊的實(shí)現(xiàn)244.2.1 其他實(shí)現(xiàn)27第6章 結(jié)論27致謝28參考文獻(xiàn)29附錄1 英文原文30附錄2 譯文3742 基于安卓系統(tǒng)的卡通風(fēng)格3d賽車游戲設(shè)計(jì)與實(shí)現(xiàn)摘 要賽車運(yùn)動(dòng)從起源到現(xiàn)在已經(jīng)有100多年的歷史了,它代表著人們對于速度及其所帶來快感,刺激的追求。然而賽車運(yùn)動(dòng)的高花費(fèi)和高風(fēng)險(xiǎn)讓其一直得不到普及。近年來,隨著電子科技的發(fā)展,賽車競速類游戲應(yīng)運(yùn)而生。從電腦端大作極品飛車到手機(jī)平臺(tái)的狂野飆車無不風(fēng)靡一時(shí),可見人們對于賽車競速類游戲的熱愛。當(dāng)今社會(huì),人們越來越多的開始使用智能手機(jī),隨之而來造就了手機(jī)游戲的蓬勃發(fā)展,競速類游戲也是其中十分重要的一種游

4、戲類型。其中安卓更是手機(jī)操作系統(tǒng)中占額最大的一個(gè),本次設(shè)計(jì)基于此決定開發(fā)一款基于安卓系統(tǒng)的手機(jī)賽車游戲。本次設(shè)計(jì)的總體目的是實(shí)現(xiàn)一款安卓賽車游戲。主要功能有:真實(shí)模擬賽車的各種運(yùn)動(dòng)情況,例如加速,剎車,轉(zhuǎn)彎等等。實(shí)現(xiàn)上述功能之后是設(shè)計(jì)實(shí)現(xiàn)比賽系統(tǒng),讓玩家可以與電腦控制的賽車進(jìn)行比賽。然后則考慮安卓手機(jī)的交互和適配問題。最終做成一個(gè)風(fēng)格卡通化,具有一定可玩性的3D賽車游戲。在需求分析基礎(chǔ)上,進(jìn)行游戲架構(gòu)設(shè)計(jì)。再一步進(jìn)行賽車游戲各個(gè)細(xì)節(jié)的詳細(xì)設(shè)計(jì)。根據(jù)需求分析中提出的真實(shí)模擬賽車運(yùn)動(dòng)和比賽邏輯兩條思路分別討論各個(gè)模塊的詳細(xì)設(shè)計(jì)。在詳細(xì)設(shè)計(jì)之后,給出了系統(tǒng)的整體效果和各個(gè)部分的實(shí)現(xiàn)。最后,本文對安卓

5、手機(jī)賽車游戲的應(yīng)用情況作了簡單介紹,并對游戲進(jìn)一步改進(jìn)提出了建議。本游戲的最終達(dá)到了上述的要求,形成了一款卡通風(fēng)格的3D手機(jī)賽車游戲。該游戲以休閑娛樂為主要方向,趣味性較強(qiáng)。并且采用了合理的開發(fā)與設(shè)計(jì)結(jié)構(gòu),性能較為優(yōu)秀,整體游戲運(yùn)行也比較穩(wěn)定。關(guān)鍵字:賽車游戲 安卓系統(tǒng) 真實(shí)模擬 比賽 交互 ABSTRACTMotorsport from its origins to now has more than 100 years of history, it represents the people for the speed and brings pleasure, stimulation pu

6、rsuit. However, the high cost and high risk of motorsport has been allowed to get popular. In recent years, with the development of electronic technology, car racing games emerged. To the mobile platform, "Asphalt" are all the rage from the computer masterpiece "Need for Speed",

7、we can see people for the love of car racing games. Nowadays, more and more people start using smart phones, followed by creating a booming mobile games, racing games is also one very important one game type. Where Android is the mobile operating system accounted for the largest amount of a, this de

8、sign is based on the decision to develop an Android-based mobile phone racing game.First, the overall purpose of this design is to achieve an android racing game. The main features are: a variety of sports simulate racing conditions, such as acceleration, braking, cornering, and so on. There is a de

9、sign competition system that allows players with computer controlled racing competition. Finally, consider Android phones interaction and adaptation issues. Eventually made a cartoon style, with some playable 3D racing game. Then, on the basis of the requirement analysis, architecture design game. T

10、hen step detailed design of each detail of racing games. Discuss the detailed design of the individual modules based on real racing simulation game logic and motion analysis needs two ideas proposed. After the detailed design, it gives the overall effect of the system implementation and various part

11、s. Finally, the phone racing game for Android application is briefly introduced, and made recommendations to further improve the game.The game eventually reached the above requirements, the formation of a cartoon style 3D mobile racing game. The game with leisure and entertainment as the main direct

12、ion, interest is strong. And the use of reasonable development and design structure, performance is more excellent, the whole game is running relatively stable.Keyword: Racing games Android system Real simulation Competition Interactive第1章 緒論1.1基于安卓系統(tǒng)的手機(jī)賽車游戲開發(fā)背景資料表明,自 2013 年以來,手機(jī)一直保持第一大上網(wǎng)終端,在移動(dòng)互聯(lián)網(wǎng)行業(yè)

13、飛速發(fā)展的推動(dòng)下,手機(jī)游戲日漸成為中國游戲市場的熱門之選。首先,各大互聯(lián)網(wǎng)企業(yè)進(jìn)軍手機(jī)游戲市場,手機(jī)游戲市場的潛力已經(jīng)得到認(rèn)可,而未來激烈的市場競爭也將促進(jìn)行業(yè)良性發(fā)展,市場快速增長可以預(yù)期。其次,大量游戲開發(fā)者進(jìn)入手機(jī)游戲市場,游戲玩法、畫面風(fēng)格以及游戲題材越來越豐富,產(chǎn)品數(shù)量呈現(xiàn)爆發(fā)性增長。然而隨著各種類型產(chǎn)品的不斷豐富,游戲產(chǎn)品在創(chuàng)新上已經(jīng)漸漸難以找到稀缺,游戲內(nèi)容和題材的空格在慢慢被填滿。再次,手機(jī)游戲社交性加強(qiáng),手機(jī)隨身性、實(shí)時(shí)性可以更好的維持社交關(guān)系,使用戶的關(guān)系網(wǎng)從 PC 端移至手機(jī)端,而社交元素的融入大大提升了用戶對游戲的使用黏性。賽車游戲是手機(jī)游戲中的一種,它的發(fā)展正是電腦出

14、現(xiàn)之后這幾十年的事情。賽車是世界上的頂級運(yùn)動(dòng),它使人們充滿對速度的渴望,然而這項(xiàng)運(yùn)動(dòng)的費(fèi)用和危險(xiǎn)同樣高得驚人,以致令絕大多數(shù)愛好者望塵莫及,這些人不得不終日守在電視機(jī)前,借助想象力揣摩著車手究竟是如何駕駛賽車。 20世紀(jì)80年代,電腦科技的迅猛發(fā)展改變了人們的生活,雖然游戲產(chǎn)業(yè)尚處于蒙昧?xí)r期,但初出茅廬的虛擬技術(shù)使全世界車迷依稀觸摸到速度的魔影;進(jìn)入90年代,賽車游戲也進(jìn)入到一個(gè)高速發(fā)展時(shí)期,模擬度越來越高的優(yōu)秀作品不斷給玩家和車迷帶來驚喜;時(shí)光進(jìn)入21世紀(jì),電腦賽車游戲產(chǎn)業(yè)已發(fā)展到一個(gè)相當(dāng)完善的程度,某些高水平作品的模擬度甚至達(dá)到90%以上12。時(shí)至今日,手機(jī)賽車游戲也不斷的發(fā)展和完善,越來

15、越多的人習(xí)慣于在手機(jī)上進(jìn)行游戲。目前,手機(jī)端的狂野飆車,Real Racing等賽車游戲都已經(jīng)達(dá)到了可以媲美電腦端的水平。然而這些游戲更偏向于競技,與此同時(shí),安卓端卡通風(fēng)格,偏向于休閑娛樂的賽車游戲還相對較少。本次課程設(shè)計(jì)基于此嘗試做一款休閑娛樂,使玩家感覺輕松愜意的賽車游戲。1.2國內(nèi)外賽車手機(jī)游戲發(fā)展現(xiàn)狀縱觀現(xiàn)在各大游戲市場排名前列的賽車類手機(jī)游戲,不外乎狂野飆車,Real Racing,Need For Speed這幾款。國內(nèi)幾乎沒有頂尖的賽車游戲。賽車競速游戲并不是簡單的汽車模型和跑道。其背后復(fù)雜的物理計(jì)算是一個(gè)極其浩大的工程。賽車的物理引擎表現(xiàn)的真實(shí)情況如何,取決于這些表現(xiàn)的背后龐大

16、的汽車數(shù)據(jù)。物理引擎并不是一群程序員坐在電腦前不斷寫代碼就能完成,為了真實(shí)還原真車的物理表現(xiàn),很多制作組要收集成千上百的不同的汽車數(shù)據(jù),比如每百公里加速時(shí)間、剎車距離、碰到護(hù)欄的翻車軌跡,汽車過彎時(shí)候不同輪子的受力狀況等。例如,F(xiàn)orza賽車的制作組Turn10為了和GT賽車的真實(shí)性對抗,游戲程序員收集幾千GB的汽車相關(guān)數(shù)據(jù),設(shè)計(jì)師要對每輛車收集300個(gè)數(shù)據(jù)點(diǎn),包括地盤硬度、輪胎成分等等。然后通過一套復(fù)雜的數(shù)學(xué)模型計(jì)算每一個(gè)數(shù)據(jù)對汽車性能的影響,。Turn10還特別為了這些數(shù)據(jù)建立了自己的數(shù)學(xué)模型“AutoMagic”。就數(shù)據(jù)采集這個(gè)環(huán)節(jié),國內(nèi)就有不少差距。而且更讓人難以做到的是這些都是要時(shí)間

17、積累的。再舉回上面的例子:Turn10小組收集的數(shù)據(jù)中,每輛車大約 812GB,僅收集這些物理數(shù)據(jù)所花費(fèi)的工時(shí)就用了大概3.9萬小時(shí)。而且每一代又再次增加或者更新原來的數(shù)據(jù),例如在Forza2的時(shí)候還沒有車損系統(tǒng),到了三代加進(jìn)了這個(gè)功能,車輛的損耗數(shù)據(jù)又是一個(gè)龐大的數(shù)據(jù)。所有的這些都是為了玩家呈現(xiàn)出擬真的駕駛感覺14。汽車工業(yè)的發(fā)達(dá)程度是這些賽車游戲后面的強(qiáng)大后盾。這里所說的是汽車工業(yè)不是產(chǎn)業(yè),說的是水平高低而不是規(guī)模大小。汽車強(qiáng)國日本產(chǎn)生出GT賽車,美國出了Forza, 歐洲誕生了NFSGTR等。歐美日等汽車強(qiáng)國由于汽車工業(yè)發(fā)達(dá),累計(jì)了上百年的賽車技術(shù)和龐大的數(shù)據(jù)庫都為賽車游戲開發(fā)提供源源不

18、斷的技術(shù)支持。盡管中國的汽車工業(yè)進(jìn)步在近十多年來得到飛速的發(fā)展,但歸根到底核心技術(shù)還是掌握在別人手里。國內(nèi)想開發(fā)一款擬真類的賽車游戲,資源真的很有限,主要缺少是這些真實(shí)模擬賽車的各種數(shù)據(jù)11,這就是國內(nèi)沒有好的賽車游戲的主要原因。一款優(yōu)秀的手機(jī)賽車游戲也是以此為基礎(chǔ)的,所以這些在電腦端做出很好的賽車游戲的公司很容易做出十分出色的手機(jī)賽車游戲。而中國這些方面就有所欠缺了。如果中國想進(jìn)一步做出好的賽車游戲,也需要和國內(nèi)的汽車廠商進(jìn)行合作,這還需要一個(gè)漫長的過程。1.3 解決的主要問題基于安卓系統(tǒng)的手機(jī)賽車游戲是在現(xiàn)在主流手機(jī)賽車游戲的基礎(chǔ)上,即要做出真實(shí)模擬賽車的種種運(yùn)動(dòng),也要有一定風(fēng)格上的創(chuàng)新,

19、綜合考慮游戲的主要制作方向和用戶的娛樂需求,最終設(shè)計(jì)出一款具有一定可玩性的休閑娛樂方向的賽車游戲。 在需求分析方面,在充分理解賽車游戲各種邏輯的基礎(chǔ)上,獲得游戲的開發(fā)方向,并且考慮現(xiàn)在玩家對于手機(jī)游戲的追求,充分體現(xiàn)手機(jī)游戲休閑娛樂化,游戲時(shí)間碎片化的特點(diǎn)。通過分析總結(jié)出合理的設(shè)計(jì)和開發(fā)思路。 在設(shè)計(jì)方面,考慮手機(jī)賽車游戲的特點(diǎn)和技術(shù)上的限制,設(shè)計(jì)出具有自己特色,具有卡通化風(fēng)格,操作簡單易于上手,交互系統(tǒng)友好,能吸引一定玩家的一個(gè)游戲。 在實(shí)現(xiàn)方面,在實(shí)現(xiàn)前文設(shè)計(jì)基礎(chǔ)上,主要解決對技術(shù)的選擇和游戲引擎的選用從而進(jìn)行游戲設(shè)計(jì)和實(shí)現(xiàn)。本文擬選用Unity3d作為開發(fā)工具,利用其中的物理引擎和腳本控

20、制和模擬賽車運(yùn)動(dòng),然后用Unity的AI編程實(shí)現(xiàn)電腦控制小車和比賽系統(tǒng)。1.4 本文的主要工作本文在分析現(xiàn)有手機(jī)賽車游戲的基礎(chǔ)上,實(shí)現(xiàn)具有獨(dú)特風(fēng)格的賽車游戲。首先進(jìn)行需求分析,分析游戲開發(fā)背景以及項(xiàng)目整體概述,描述游戲整體目標(biāo)和需要解決的問題。然后闡述系統(tǒng)構(gòu)架設(shè)計(jì),介紹實(shí)現(xiàn)游戲的關(guān)鍵技術(shù),游戲邏輯等問題。下一步為具體實(shí)現(xiàn)的詳細(xì)設(shè)計(jì),詳細(xì)描述各個(gè)模塊的設(shè)計(jì)方法和實(shí)現(xiàn)技術(shù)。之后本文將介紹本賽車游戲的具體實(shí)現(xiàn)過程,測試結(jié)果。最后部分為全文總結(jié)并提出需要改進(jìn)的地方,文獻(xiàn)引用和外文原文及其翻譯。1.5 論文的組織結(jié)構(gòu)第一章:緒論。主要描述基于安卓系統(tǒng)的手機(jī)賽車游戲的開發(fā)背景、 國內(nèi)外賽車游戲現(xiàn)狀,本文解

21、決的主要問題和需要完成的主要工作。第二章:需求分析。主要包括游戲的開發(fā)背景,項(xiàng)目說明,系統(tǒng)整體概述。游戲目標(biāo)和需要解決的問題,游戲各種需求分析。第三章:構(gòu)架設(shè)計(jì)。本章描述游戲的構(gòu)架設(shè)計(jì)目標(biāo)和原則。技術(shù)構(gòu)架包括物理構(gòu)架和邏輯構(gòu)架。功能構(gòu)架包括功能組成和功能流程。第四章:詳細(xì)設(shè)計(jì)。整個(gè)系統(tǒng)具體實(shí)現(xiàn)上各個(gè)細(xì)節(jié),關(guān)鍵技術(shù)的設(shè)計(jì)。第五章:游戲的實(shí)現(xiàn)和測試。包括游戲具體實(shí)現(xiàn)情況,測試過程及其遇到的問題及解決方法。第六章:總結(jié)??偨Y(jié)整個(gè)開發(fā)過程,以及需要改進(jìn)的地方。第2章 基于安卓系統(tǒng)的手機(jī)賽車游戲需求分析2.1系統(tǒng)概述2.1.1項(xiàng)目背景時(shí)至今日,手機(jī)賽車游戲一直在不斷的發(fā)展,并且有更多人開始在手機(jī)上進(jìn)行游

22、戲。目前,手機(jī)端的狂野飆車,Real Racing等賽車游戲都已經(jīng)達(dá)到了非常真實(shí)的賽車體驗(yàn)。然而這些游戲的玩法更偏向于競技。與此同時(shí),卡通風(fēng)格,偏向于休閑娛樂的賽車游戲還相對較少?;诎沧康氖謾C(jī)賽車游戲以安卓系統(tǒng)為運(yùn)行平臺(tái)。如今安卓系統(tǒng)上的賽車類游戲也有很多,玩法也各式各樣。既有一些擬真度很高的賽車游戲如狂野飆車系列,也有很休閑娛樂化的,如QQ飛車。這些游戲都是以賽車為基礎(chǔ)進(jìn)行的創(chuàng)作。本游戲考慮了市面上現(xiàn)有的很多賽車游戲,在傳統(tǒng)賽車游戲的基礎(chǔ)上進(jìn)行一定的創(chuàng)新。形成具有自己獨(dú)特風(fēng)格的,偏向于卡通休閑化的賽車游戲。2.1.2項(xiàng)目說明基于安卓系統(tǒng)的手機(jī)賽車游戲是一款運(yùn)行在智能手機(jī)平臺(tái)以安卓為操作系統(tǒng)

23、的一款賽車競速類游戲。此項(xiàng)目充分考慮了現(xiàn)有的技術(shù)條件和市面上其他的賽車游戲,決定以休閑娛樂為游戲的主體基調(diào),而不再是傳統(tǒng)賽車游戲的以競技為主要玩法??紤]到如今各種高仿真的手機(jī)賽車游戲已經(jīng)很多了,所以本游戲決定在風(fēng)格上有所創(chuàng)新,爭取做成一款畫風(fēng)清新簡潔,整體風(fēng)格卡通化,交互友好的賽車游戲。如今人們對于手機(jī)游戲的需求已經(jīng)有了很大的改變,人們更傾向于用碎片化的進(jìn)行游戲。例如現(xiàn)在流行的跑酷類游戲地鐵跑酷,消除類游戲開心消消樂等都因此變得十分火熱。相比之下,賽車游戲更強(qiáng)調(diào)競技,固然有玩家喜歡這種風(fēng)馳電掣,追求速度的感覺,但是大多數(shù)玩家還是追求一種更為休閑的游戲體驗(yàn)。所以本游戲以休閑為主要方向,進(jìn)行一關(guān)游

24、戲所需要的時(shí)間減少,競技性稍稍弱化。讓玩家感覺更輕松,是本游戲主要考慮的方面,這將也是本游戲的一大優(yōu)勢。2.1.3整體系統(tǒng)概述基于安卓系統(tǒng)的手機(jī)賽車游戲選用Unity3D進(jìn)行開發(fā)和實(shí)現(xiàn)。Unity3D是一個(gè)非常強(qiáng)大的游戲引擎,其中的物理引擎可以比較真實(shí)的模擬賽車的種種運(yùn)動(dòng),并且其內(nèi)置的光照渲染等系統(tǒng)也十分優(yōu)秀完全可以滿足本游戲的制作需要。其中賽車的運(yùn)動(dòng)部分可以采用Unity中的WheelCollider進(jìn)行實(shí)現(xiàn),其中的motorTorque方法可以輕松實(shí)現(xiàn)賽車的前景后退,steerAngl方法用來實(shí)現(xiàn)賽車的左右轉(zhuǎn)向等問題,brakeTorque用來實(shí)現(xiàn)剎車。這些方法都可以自己設(shè)置參數(shù),最終達(dá)到

25、比較真實(shí)的模擬賽車運(yùn)動(dòng)的狀況。除此之外,電腦控制小車的過程可以使用Unity3D的AI(人工智能)編程方法進(jìn)行實(shí)現(xiàn)。隨后的比賽系統(tǒng)都可以自行添加腳本進(jìn)行控制。在游戲界面的設(shè)計(jì)上,系統(tǒng)使用NGUI,一款常用的Unity插件進(jìn)行實(shí)現(xiàn),此插件可以添加各種按鈕,標(biāo)簽,控制器等,可以做出一個(gè)易于交互的界面系統(tǒng)。最后對于安卓平臺(tái)的適配問題,由于Unity強(qiáng)大的跨平臺(tái)特征,只需要一些簡單的修改就可以發(fā)布到安卓手機(jī)上了。 2.2 Unity3D游戲引擎簡介游戲引擎的出現(xiàn)極大加快了游戲開發(fā)的速度和效率,游戲的開發(fā)者不必太多的去考慮一些底層的功能,他們可以把更多的精力放在游戲功能的實(shí)現(xiàn)上。本次游戲開發(fā)所選用的游戲

26、引擎Unity3D是由Unity Technologies公司開發(fā)的一個(gè)可以幫助游戲制作者輕松完成游戲開發(fā),同時(shí)具有很好的跨平臺(tái)特性的十分專業(yè)的游戲引擎。下面對該引擎的主要功能進(jìn)行簡單的介紹。2.2.1 Unity3D圖形用戶界面(GUI)在一個(gè)游戲的開發(fā)過程中,游戲的圖形用戶界面(GUI)的設(shè)計(jì)有著非常重要的地位,它是玩家進(jìn)入游戲后第一個(gè)看到的界面。UI界面包括貼圖,按鈕,文本框和其他的一些高級控件。Unity3D在編輯器中提供了3D場景編輯器,可以實(shí)時(shí)預(yù)覽游戲運(yùn)行的情況,并將各個(gè)游戲數(shù)據(jù)可視化顯示。目前一個(gè)很常用的UI編輯工具是一款名為NGUI的插件。這個(gè)插件可以提供十分強(qiáng)大的UI界面和時(shí)

27、間通知框。并且它極大地提高了游戲界面設(shè)計(jì)和開發(fā)的效率,開發(fā)者只需要寫幾十到幾百行代碼就可以實(shí)現(xiàn)界面的功能。這款插件通過包的方式導(dǎo)入U(xiǎn)nity3D,并存在于Unity3D的菜單欄中。當(dāng)我們需要用到其相關(guān)的功能時(shí),只需找到它自帶的Prefabs,從而輕松的生成按鈕,輸入框等控件。2.2.2 Unity3D游戲腳本游戲腳本在一個(gè)游戲的開發(fā)中可是說是至關(guān)重要,游戲?qū)ο笾g的各種邏輯關(guān)系都要通過腳本來進(jìn)行實(shí)現(xiàn)。如果說游戲的模型,場景等資源決定一個(gè)游戲的視覺效果,腳本則直接決定游戲的質(zhì)量,游戲內(nèi)容是否豐富,游戲的運(yùn)行是否流暢都是由腳本而決定的。游戲腳本的用法與游戲中的其他組件差不多,也要裝配到特定的游戲?qū)?/p>

28、象上才能執(zhí)行他的功能。Unity可以支持三種語言來編寫腳本,即C#,JavaScript和Boo。這三種語言分別有其不同的優(yōu)勢,其中JavaScript編程技巧與難度比較低,初學(xué)者會(huì)更容易上手;C#語言的編程思想更接近也更符合Unity的編程原理,因此目前被最廣泛的使用;Boo語言則非常類似于Python。不同的開發(fā)者可以選用不同的語言進(jìn)行自己的開發(fā)工作。Unity3D有Windows和Mac OS兩種版本,所以Unity需要一個(gè)可以跨平臺(tái)的腳本編輯器。Unity自帶的MonoDevelop腳本編輯器是一個(gè)使用便捷,并且具有強(qiáng)大的跨平臺(tái)性的腳本編輯器。Unity對于腳本的處理已經(jīng)非常成熟了,像

29、其他的很多成熟的框架一樣,Unity程序框架封裝了程序的入口,但提供了很好的程序管理和控制接口和事件響應(yīng)處理的接口。開發(fā)者通過腳本可以調(diào)用這些API對游戲進(jìn)行控制。Unity3D中的程序是以一個(gè)個(gè)的場景為資源和內(nèi)存管理的單位。當(dāng)切換場景的時(shí)候,所有當(dāng)前場景的內(nèi)存對象和游戲資源都會(huì)被釋放,并加載下一個(gè)場景所需要的資源。Unity中出現(xiàn)的所有實(shí)體都屬于游戲?qū)ο螅褂媚_本處理對象的方式有兩種,意識將腳本綁定在某個(gè)游戲?qū)ο笊希僬呔褪窃诖a中動(dòng)態(tài)綁定和刪除腳本。2.2.3 Unity3D物理引擎物理引擎是為在游戲中真實(shí)的模擬各種物理效果而設(shè)計(jì)的。在賽車游戲中,物理引擎可以用來模擬賽車的加速、減速、轉(zhuǎn)彎

30、、碰撞等效果。Unity3D整合了NVIDIA PHYSX物理引擎。當(dāng)我們模擬簡單的剛體運(yùn)動(dòng)時(shí),其實(shí)現(xiàn)比較簡單,可以自行編寫腳本實(shí)現(xiàn)。但是在本項(xiàng)目中,賽車的運(yùn)動(dòng)還是比較復(fù)雜的,包括了各種運(yùn)動(dòng)效果。自行編寫底層代碼耗時(shí)長,難度大,不利于開發(fā),并且成本也會(huì)大大增加。此時(shí)選擇一款好的物理引擎可以大大簡化這方面的工作,提高開發(fā)效率。物理引擎使用對象屬性來模擬剛體行為,不僅可以的得到模擬出更真實(shí)的效果,對于游戲的開發(fā)人員也更為友好,因?yàn)檫@使得控制這些屬性比編寫腳本更容易掌握。好的物理引擎都有復(fù)雜的機(jī)械裝置,如球形、關(guān)節(jié)、輪子或者鉸鏈。有些也支持非剛體的物理屬性,比如流體。Unity具備十分完整的物理引擎

31、,為進(jìn)行游戲開發(fā)提供了便利。該物理引擎分為剛體和碰撞兩大模塊。剛體(Rigidbody)是物理引擎中一個(gè)非常重要的組件,新創(chuàng)建的物體在默認(rèn)情況下是不具有物理效果的,而剛體組件可以給物體添加一些常見的物理屬性,比如物體質(zhì)量、摩擦力和碰撞參數(shù)等,這些屬性可用來真實(shí)的模擬該物體在游戲世界中的一切行為。剛體的常見參數(shù)有質(zhì)量、阻力,重力等,部分變量如表,這些變量可以模擬真實(shí)世界中的物理運(yùn)動(dòng)。碰撞模塊中,考慮到剛體與物體之間存在碰撞,剛體幵始移動(dòng)后,需要在系統(tǒng)方法中監(jiān)聽剛體的碰撞狀態(tài),碰撞分為三種:進(jìn)入碰撞、碰撞、碰撞結(jié)束。2.2.3 Unity3D跨平臺(tái)性Unity3D的編輯器實(shí)質(zhì)是一個(gè)虛擬機(jī)和編譯器的

32、組合,編譯器的核心基礎(chǔ)框架如值染管理、場景管理、物理引擎等模塊的代碼全部用C+語言編寫,從而保證了效率與可移植性。在游戲開發(fā)中,編譯器將主程序框架(framework)與開發(fā)者編寫的程序腳本共同編譯并解釋成為目標(biāo)平臺(tái)的目標(biāo)語言,幵發(fā)者不需要重新幵發(fā)代碼,只需做少量工作。最終在游戲發(fā)布時(shí),編輯器結(jié)合導(dǎo)出為具體平臺(tái)格式的游戲資源統(tǒng)一生成目標(biāo)平臺(tái)的對應(yīng)格式程序或者是可以進(jìn)行二次本地化開發(fā)的目標(biāo)平臺(tái)開發(fā)工程,最終實(shí)現(xiàn)跨平臺(tái)。2.3目標(biāo)和解決的問題本游戲的目標(biāo)和需要解決的問題主要有以下幾點(diǎn):1:模擬賽車的各種運(yùn)動(dòng)情況,具體包括:加速,剎車,轉(zhuǎn)彎等狀態(tài)。這里的模擬并不需要十分真實(shí)的模擬出賽車的運(yùn)動(dòng)。因?yàn)楸?/p>

33、賽車游戲的風(fēng)格更偏向于卡通風(fēng)格。只需要可以比較友好便捷的控制賽車的各種運(yùn)動(dòng)即可。2:利用Unity的AI編程寫出一個(gè)電腦控制的賽車與玩家進(jìn)行比賽,隨后進(jìn)行比賽的勝負(fù)判定。設(shè)定一個(gè)電腦控制的賽車,可以在規(guī)定的賽車道上運(yùn)動(dòng),實(shí)現(xiàn)與玩家賽車的比賽。3:游戲風(fēng)格簡潔化,卡通化,畫面清新美觀。本游戲主要考慮的方面是在游戲風(fēng)格上有所創(chuàng)新,區(qū)別于傳統(tǒng)的、高度真實(shí)化的賽車游戲。達(dá)到風(fēng)格比較卡通化,畫面整體感覺清新美觀的視覺效果。給玩家一種輕松休閑的游戲體驗(yàn)。4:在安卓系統(tǒng)上適配良好,運(yùn)行流暢。本游戲最終要發(fā)布成安卓的版本,所以應(yīng)該考慮對于安卓系統(tǒng)的適配問題,并且對于不同的安卓手機(jī)力求比較完美的適配。5:游戲交

34、互方式友好,操作簡單。游戲的交互方式要求比較的友好,操作要簡單易于上手。2.4需求問題描述2.4.1功能性需求本游戲所要實(shí)現(xiàn)的功能分為以下幾個(gè)部分:1:賽車運(yùn)動(dòng)部分,要求可以模擬出賽車各種運(yùn)動(dòng)情況,其中包括(1):賽車加速模擬(2):賽車剎車制動(dòng)系統(tǒng)模擬(3):賽車轉(zhuǎn)彎甩尾動(dòng)作模擬(4):賽車漂移等模擬2:場景的模型和渲染方面,爭取可以比較完整的呈現(xiàn)出來,并表現(xiàn)出自己的風(fēng)格(1):賽道設(shè)計(jì)要符合賽車游戲的一些標(biāo)準(zhǔn)(2):整個(gè)場景建模使用卡通化的模型風(fēng)格(3):光照陰影等系統(tǒng)完備3:各種物理模擬(1):碰撞檢測系統(tǒng)(2):賽車重心位置設(shè)定,質(zhì)量設(shè)定4:比賽系統(tǒng)(1):人工智能小車的實(shí)現(xiàn)(2):比

35、賽邏輯的實(shí)現(xiàn)(3):獎(jiǎng)勵(lì)懲罰系統(tǒng)實(shí)現(xiàn)5:關(guān)卡設(shè)定(1):設(shè)計(jì)不同難度等級的關(guān)卡(2):玩家可選擇關(guān)卡6:安卓系統(tǒng)的適配(1):游戲界面的適配(2):交互方式的適配(3):操作模式的適配圖2-1:功能性需求圖例2.4.2非功能性需求1:程序的健壯性需求要求程序中竟可能少或者沒有Bug影響游戲體驗(yàn)。在游戲的開發(fā)過程中應(yīng)該盡可能的減少或避免一些Bug的產(chǎn)生。2:操作性好,易于玩家上手操作要求游戲具有良好的可操作性,玩家對于游戲的控制做到簡單易學(xué),游戲易于玩家上手體驗(yàn)。3:具有良好的可維護(hù)性整個(gè)游戲的代碼、數(shù)據(jù)等應(yīng)當(dāng)便于維護(hù)和修改。4:具有良好的可移植性游戲不光可以在安卓系統(tǒng)運(yùn)行,稍作修改還可以發(fā)布到

36、其他平臺(tái),如IOS,Windows等,具有一定的可擴(kuò)展性。圖2-2:非功能性需求圖第3章 基于安卓系統(tǒng)的手機(jī)賽車游戲架構(gòu)設(shè)計(jì)3.1 設(shè)計(jì)目標(biāo)和原則 基于安卓的手機(jī)賽車游戲的主要目標(biāo)是為玩家提供一個(gè)具有特色的賽車類手機(jī)游戲,使玩家可以在空閑時(shí)間選擇該游戲進(jìn)行休閑娛樂。本游戲不同于現(xiàn)今主流快節(jié)奏的賽車游戲,本游戲意在休閑娛樂化。玩家在玩游戲的同時(shí)會(huì)感覺到輕松和享受。其中游戲主要實(shí)現(xiàn)的功能有兩點(diǎn),即模擬賽車運(yùn)動(dòng)情況和比賽的實(shí)現(xiàn)。除了游戲的主要功能實(shí)現(xiàn)外,本游戲還需要有注意以下幾點(diǎn)原則:良好的交互性:本游戲是一個(gè)安卓手機(jī)上的賽車游戲,所以在設(shè)計(jì)和實(shí)現(xiàn)的時(shí)候必須考慮到安卓手機(jī)的交互特點(diǎn)以及人們比較習(xí)慣的

37、操控方式,以達(dá)到交互友好的目標(biāo),這是影響游戲體驗(yàn)的一個(gè)非常重要的部分??梢浦残裕菏紫扔螒蚴窃赑C端設(shè)計(jì)和實(shí)現(xiàn),移植到安卓系統(tǒng)上的時(shí)候需要注意相關(guān)問題。并且還要考慮到移植到其他平臺(tái)如IOS等等的可能性。對于不同手機(jī)的適配問題:現(xiàn)在市面上的安卓手機(jī)類型多種多樣,分辨率,按鍵等都不盡相同,很好的適配不同機(jī)型也是一個(gè)需要達(dá)到的目標(biāo)。3.2 游戲架構(gòu)設(shè)計(jì) 3.2.1 游戲元素游戲元素包括:1:場景元素:場景即游戲中的大環(huán)境。本賽車游戲的場景是一個(gè)卡通風(fēng)格的城鎮(zhèn)。其中最主要的是道路,這也是賽車運(yùn)動(dòng)的路線,賽車在這些道路上實(shí)現(xiàn)跑動(dòng),比賽等。其余就是場景的布置,需要房屋,樹木,圍墻,路燈等一系列可以構(gòu)成一個(gè)完

38、整場景所需要的事物。另外場景中還需要天空盒,燈光照明,煙霧效果等一些特效。2:賽車:賽車是賽車游戲的核心。本游戲是一個(gè)卡通風(fēng)格的賽車游戲,不需要特別逼真的賽車。只需要風(fēng)格卡通化,美觀大方的賽車即可。賽車要有幾種不同式樣,以區(qū)別玩家賽車和比賽賽車,同時(shí)也可以讓玩家有所選擇。3.2.2 游戲規(guī)則本游戲的規(guī)則設(shè)定很簡單,即判定玩家賽車和電腦控制的賽車誰先到達(dá)設(shè)定的終點(diǎn)。玩家先到則獲勝,之后可以解鎖下一個(gè)關(guān)卡,并獲得一些獎(jiǎng)勵(lì)。若失敗則必須重玩本關(guān)。3.2.3 游戲任務(wù)玩家任務(wù)即為駕駛賽車在賽道上跑動(dòng),和電腦控制的賽車進(jìn)行比賽。比較誰先到終點(diǎn),先到終點(diǎn)即為勝利,否則失敗。3.2.4 游戲關(guān)卡暫時(shí)設(shè)計(jì)三個(gè)

39、關(guān)卡。隨著關(guān)卡的提升,游戲難度逐步提升,其地圖也會(huì)有一些變化。第一關(guān)游戲地圖較小,比賽賽車速度也比較慢,玩家可以輕松贏得比賽。第二關(guān)關(guān)卡地圖稍大,賽車速度略微提升。第三關(guān)地圖最大,路程最長,比賽賽車速度也比較快,難度有所提升。3.2.5 其他1:界面界面設(shè)計(jì)原則是清新大方,簡潔易懂。首先是進(jìn)入游戲時(shí)的界面,這個(gè)界面可交互的內(nèi)容有開始游戲,選擇關(guān)卡,退出游戲等。然后是進(jìn)入游戲之后的界面,此界面可以顯示賽車車速,可操作的選項(xiàng)有暫停游戲,退出游戲,退回到開始界面等。2:交互現(xiàn)在安卓手機(jī)一般都是觸屏操作。對于賽車的控制方式采取虛擬按鈕和重力感應(yīng)結(jié)合的控制方式。虛擬按鍵控制賽車加速。剎車運(yùn)動(dòng)。重力感應(yīng),

40、手機(jī)的左右搖晃控制賽車的左右轉(zhuǎn)向。3:AI設(shè)計(jì)AI設(shè)計(jì)包括游戲中電腦控制的比賽賽車設(shè)計(jì)和實(shí)現(xiàn),同時(shí)比賽的輸贏邏輯,以及何時(shí)進(jìn)入下一關(guān)也需要AI判定。3.3 游戲功能架構(gòu)3.3.1 游戲功能組成由以上分析,我們已經(jīng)獲得游戲的主要構(gòu)架,可得游戲由以下幾部分功能組成:1:賽車運(yùn)動(dòng)模擬玩家進(jìn)入游戲之后,可以通過各種按鍵或者感應(yīng)系統(tǒng)控制賽車的各種運(yùn)動(dòng),例如加速,剎車,左右轉(zhuǎn)彎等。2:比賽系統(tǒng)實(shí)現(xiàn)在一局游戲開始之后,玩家在操控賽車的同時(shí)會(huì)有一個(gè)電腦控制的賽車同時(shí)向游戲終點(diǎn)運(yùn)動(dòng)。先到終點(diǎn)者為勝,否則為敗。3:游戲界面實(shí)現(xiàn)游戲的界面是游戲的一個(gè)十分重要的部分,對于界面要實(shí)現(xiàn)的功能有:開始和結(jié)束游戲,選擇關(guān)卡,

41、暫停游戲,顯示一些提示等功能。3.3.2 游戲功能流程首先玩家打開游戲之后進(jìn)入到開始界面,這個(gè)界面包含了選擇關(guān)卡,開始游戲和退出游戲的操作。點(diǎn)擊開始游戲或選擇一個(gè)關(guān)卡進(jìn)入到游戲中之后,玩家開始操控賽車進(jìn)行比賽,在這個(gè)過程中,玩家也可以暫停游戲,或者退回到開始界面。如果玩家正常進(jìn)行一局游戲并完成,如果玩家取得勝利,則進(jìn)入下一關(guān),如果玩家失敗,則可以重玩本關(guān)。最后玩家不想再玩之后可以選擇退出游戲。流程圖如下所示:圖3-1:游戲功能流程圖第4章 詳細(xì)設(shè)計(jì)經(jīng)過需求分析和架構(gòu)設(shè)計(jì),我們了解了手機(jī)賽車游戲的需求和架構(gòu)流程。本章在此基礎(chǔ)上,進(jìn)一步分析系統(tǒng)的模型結(jié)構(gòu)和詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)。本游戲的核心玩法即為比賽系

42、統(tǒng),整個(gè)比賽系統(tǒng)是本游戲開發(fā)過程的主要內(nèi)容。比賽系統(tǒng)的主要功能包括處理賽車在比賽時(shí)的各種行為,玩家的交互,游戲中的對象管理,比賽邏輯的控制,以及游戲后期特效等。在比賽系統(tǒng)中用戶可以通過屏幕上的虛擬按鍵控制賽車的加速,減速和左右轉(zhuǎn)向等方向控制。游戲中的電腦控制的比賽賽車為具有AI效果,可以自行在賽道上運(yùn)動(dòng),并且與玩家控制的賽車進(jìn)行競賽。4.1 賽車游戲模塊劃分本次基于安卓的手機(jī)賽車游戲共分為3個(gè)子模塊。1:賽車模塊:該模塊用來驅(qū)動(dòng)賽車在賽道上的運(yùn)動(dòng),如加速,剎車,左右轉(zhuǎn)向。它對賽車運(yùn)動(dòng)的行為進(jìn)行封裝,在賦予車輛行駛時(shí)的各種屬性之后,從而賦予賽車正常運(yùn)動(dòng)的能力。2:數(shù)據(jù)模塊:該模塊是用來管理整個(gè)游

43、戲運(yùn)行過程中的各種數(shù)據(jù)文件及操作,如數(shù)據(jù)的讀取和訪問等。并且該模塊還要維護(hù)整個(gè)游戲在運(yùn)行時(shí)的各個(gè)配置文件,以達(dá)到游戲數(shù)據(jù)的統(tǒng)一管理。3:控制模塊:其中包括用戶控制,AI控制和流程控制。用戶控制包括在游戲運(yùn)行時(shí)用戶對于賽車的控制和交互。AI控制即為電腦操控AI賽車,與玩家進(jìn)行競賽。流程控制即為游戲的運(yùn)行流程的控制,包括游戲開始,結(jié)束,勝負(fù)判定,何時(shí)進(jìn)入下一個(gè)關(guān)卡等。本游戲各個(gè)模塊之間并不是相互獨(dú)立,而是在一定條件下可以進(jìn)行交互,互相之間會(huì)有一些接口可以相互調(diào)用,從而確保游戲的正常有序運(yùn)行。4.2 各模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)由以上分析可知本游戲主要由三個(gè)大的模塊構(gòu)成,即賽車模塊,數(shù)據(jù)模塊和控制模塊。下面

44、將詳細(xì)介紹每個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)過程。4.2.1 賽車模塊詳細(xì)設(shè)計(jì)賽車模塊具體任務(wù)就是模擬賽車運(yùn)動(dòng)的實(shí)現(xiàn),該模塊的目標(biāo)是當(dāng)我們賦予賽車合適的數(shù)值之后,可以比較真實(shí)的模擬賽車的前進(jìn),后退,轉(zhuǎn)向等操作。該模塊包含了賽車運(yùn)動(dòng)時(shí)的物理效果,運(yùn)用Unity3D的物理引擎,實(shí)現(xiàn)賽車的碰撞檢測和運(yùn)動(dòng)狀態(tài)的模擬。1:賽車模型的設(shè)計(jì)在本次的賽車游戲中,賽車模型的結(jié)構(gòu)的設(shè)計(jì)也不是隨意建造的。賽車的結(jié)構(gòu)包括車身(body),車輪(wheel)兩部分。四個(gè)車輪最好分開建模,分成左前輪,左后輪,右前輪,右后輪,以便于后期對他們進(jìn)行控制。比如說當(dāng)車輛在前進(jìn),后退,轉(zhuǎn)向時(shí),車輪隨之旋轉(zhuǎn),此處暫不細(xì)說。車身要添加一個(gè)碰撞檢測包

45、圍盒(boxcollider),如果車身太過于精細(xì)可以用大體相近的包圍盒代替,以減少對性能的影響。賽車的結(jié)構(gòu)模型如下圖:圖4-1:車身結(jié)構(gòu)圖2:動(dòng)力系統(tǒng)的設(shè)計(jì)動(dòng)力系統(tǒng)主要實(shí)現(xiàn)的是賽車的各種運(yùn)動(dòng)情況。其中最主要的是加速,剎車,后退,左右轉(zhuǎn)向的實(shí)現(xiàn)。它們的實(shí)現(xiàn)主要依托于Unity3D中專為賽車游戲的開發(fā)與實(shí)現(xiàn)設(shè)計(jì)的WheelCollider類。由于本賽車設(shè)定為前驅(qū),只需要對前面的兩個(gè)車輪進(jìn)行控制即可。賽車運(yùn)動(dòng)時(shí)速度并不會(huì)一直增加,會(huì)有一個(gè)最大值,當(dāng)達(dá)到最大值之后速度就不再增加;同理當(dāng)賽車倒車時(shí)會(huì)有一個(gè)最大速度,我們在這里叫其為最小速度。所以我們要設(shè)定賽車的最大速度MaxSpeed和最小速度MinS

46、peed。各種運(yùn)動(dòng)的實(shí)現(xiàn)方法如下表:運(yùn)動(dòng)類型對應(yīng)方法說明加速motorTorque值設(shè)為正即為加速減速motorTorque值設(shè)為負(fù)為減速剎車brakeTorque設(shè)置剎車動(dòng)力值左轉(zhuǎn)steerAngle向左轉(zhuǎn)向右轉(zhuǎn)steerAngle向右轉(zhuǎn)向最大速度MaxSpeed賽車前進(jìn)的最大速度最小速度MinSpeed賽車倒車的最大速度表4-1:賽車運(yùn)動(dòng)方法表3:賽車整體物理模擬設(shè)計(jì)賽車在運(yùn)動(dòng)之后,如果要比較完美的模擬出賽車的種種運(yùn)動(dòng),必須對賽車的各種數(shù)據(jù)加以調(diào)整,以達(dá)到比較真實(shí)的模擬賽車的整體情況。其中主要包括賽車的重量設(shè)置和重心位置設(shè)定。賽車的重量設(shè)置的實(shí)現(xiàn)方法為在賽車上添加一個(gè)剛體(rigidbod

47、y),然后將賽車質(zhì)量設(shè)為1000-1400之間。這也是比較真實(shí)的賽車重量。賽車的重心設(shè)置現(xiàn)在賽車的運(yùn)動(dòng)腳本中設(shè)置一個(gè)重心的變量CenterOfMass,然后在賽車模型下面新建一個(gè)空的子物體,將位置設(shè)定到車的底部之后,在將值賦給變量CenterOfMass即可。這樣做的好處是可以使賽車在運(yùn)行起來更加的穩(wěn)定,不太容易翻車打飄的現(xiàn)象。4:車輪轉(zhuǎn)動(dòng)設(shè)計(jì)為了達(dá)到比較真實(shí)的還原賽車在運(yùn)動(dòng)時(shí)的狀態(tài),賽車的車輪必須隨著賽車的種種運(yùn)動(dòng)而做出相應(yīng)的改變。當(dāng)賽車在前進(jìn)后退時(shí),車輪會(huì)圍繞中心點(diǎn)旋轉(zhuǎn);當(dāng)賽車左右轉(zhuǎn)向時(shí),車輪也會(huì)圍繞其中心點(diǎn)左右旋轉(zhuǎn)一定角度。車輪前后的轉(zhuǎn)動(dòng)是由WheelCollider的轉(zhuǎn)動(dòng)速度來決定的,

48、這里可以專門寫一個(gè)方法WheelRotate(),先用WheelCollider.rpm獲取WheelCollider每分鐘轉(zhuǎn)的圈數(shù),之后對于每個(gè)輪子調(diào)用Rotate方法,讓它隨著x軸轉(zhuǎn)動(dòng)即可。車輪隨著車輛左右轉(zhuǎn)向而轉(zhuǎn)動(dòng)與WheelCollider的另一個(gè)方法steerAngle有關(guān),我們首先獲取這個(gè)角度,然后讓車輪圍繞y軸轉(zhuǎn)動(dòng)即可實(shí)現(xiàn)這個(gè)效果。對四個(gè)輪子坐相同處理,可以達(dá)到最終的效果。5:聲音添加聲音是游戲中一個(gè)必不可少的元素,其中包括背景音樂和賽車運(yùn)動(dòng)的引擎等聲音。聲音資源可以在外部找到合適的資源,然后將其導(dǎo)入U(xiǎn)nity中。對于背景音樂,可以在主相機(jī)上添加一個(gè)AudioSource,這是一

49、個(gè)專門用來接收聲音資源并播放的方法,我們還可以通過下面的參數(shù)調(diào)節(jié)聲音的大小。對于汽車引擎的聲音也是一樣,將聲音添加到車輛上,通過腳本根據(jù)賽車的運(yùn)動(dòng)速度動(dòng)態(tài)調(diào)節(jié)聲音大小。4.2.2 數(shù)據(jù)模塊詳細(xì)設(shè)計(jì)數(shù)據(jù)模塊主要是記錄賽車的實(shí)時(shí)速度和賽車從起點(diǎn)到終點(diǎn)的時(shí)間。1:實(shí)時(shí)速度記錄記錄實(shí)時(shí)速度可以單獨(dú)設(shè)計(jì)一個(gè)方法CurrentSpeed()。賽車的實(shí)時(shí)速度可以通過車輪的轉(zhuǎn)速來計(jì)算的出。首先用WheelCollider中的rpm方法得到每分鐘轉(zhuǎn)的圈數(shù),然后在通過公式C=2r算出一圈的長度,從而算出實(shí)時(shí)速度。偽代碼如下:currentSpeed = WheelCollider.rpm * (WheelColl

50、ider.radius * 2 * Mathf.PI) * 60 / 1000;得出實(shí)時(shí)速度之后,再在游戲界面添加一個(gè)Label顯示這個(gè)速度就可以很直觀的看到賽車的實(shí)時(shí)速度了。2:時(shí)間記錄時(shí)間記錄的設(shè)計(jì)方法為賽車添加一個(gè)計(jì)時(shí)器,在游戲開始時(shí)馬上開始計(jì)時(shí),到達(dá)終點(diǎn)時(shí)結(jié)束計(jì)時(shí),從而的出賽車跑完全程的時(shí)間。也用一個(gè)Label顯示在游戲界面上??梢杂靡粋€(gè)方法TimeCount實(shí)現(xiàn)該功能,游戲開始時(shí)馬上開始計(jì)時(shí)(Begin),游戲結(jié)束時(shí)計(jì)時(shí)結(jié)束(End),的出這一關(guān)游戲的時(shí)間。4.2.3 控制模塊詳細(xì)設(shè)計(jì)控制模塊包括用戶控制,AI控制和流程控制。用戶控制主要是對于圖形用戶界面(GUI)的操作和對于賽車的

51、操控。AI控制是一個(gè)電腦控制的賽車與玩家進(jìn)行比賽的控制。流程控制主要是控制如何開始游戲,結(jié)束游戲以及進(jìn)入下一關(guān)等的控制。1:GUI設(shè)計(jì)GUI是游戲中一個(gè)必不可少的部分,用戶可以通過GUI控制是否開始游戲,結(jié)束游戲,暫停,重玩等等的操作。本游戲的GUI采用一個(gè)Unity的GUI插件NGUI來設(shè)計(jì)和實(shí)現(xiàn)。NGUI是一款很好的GUI插件,其中常用的UI元素標(biāo)簽(Label),按鈕(Button),等都很俱全,可以方便快捷的進(jìn)行界面開發(fā)。本游戲的界面主要由四部分組成:開始界面,選車界面,游戲界面,退出界面。開始界面的主要功能是用戶可以通過兩個(gè)按鈕選擇開始游戲,或是退出游戲。點(diǎn)擊開始游戲進(jìn)入選車界面,點(diǎn)

52、擊退出游戲則進(jìn)入退出界面。車輛選擇界面主要功能就是用戶可以在該界面選擇想要的車輛。雖然當(dāng)前只有一輛車可以選擇,但是一個(gè)完整的賽車游戲肯定會(huì)有不同的車以供選擇,這個(gè)界面是為了以后游戲內(nèi)容的擴(kuò)充和增加而設(shè)計(jì)的。之后就是游戲界面,這個(gè)界面是玩家進(jìn)行游戲的界面。這個(gè)界面不光要進(jìn)行游戲的運(yùn)行,現(xiàn)實(shí)游戲運(yùn)行時(shí)的各種數(shù)據(jù),如賽車的實(shí)時(shí)速度,到達(dá)終點(diǎn)的時(shí)間等。還要有一些控制游戲流程的按鈕,如暫停游戲,返回開始界面,退出游戲等等。退出游戲的界面設(shè)計(jì)很簡單,只是為了起到一個(gè)確認(rèn)的作用,詢問玩家是否退出游戲,“是”則退出游戲,“否”則返回開始界面。各個(gè)界面之間并不是相互獨(dú)立的,其交互流程如下圖:圖4-1:各界面交互

53、流程圖2:賽車操控本游戲是一款基于安卓系統(tǒng)的手機(jī)賽車游戲,由于安卓系統(tǒng)的特性,其對于賽車的控制也要和安卓系統(tǒng)相匹配。目前安卓手機(jī)一般都有重力感應(yīng)系統(tǒng),可以用它來控制賽車的左右轉(zhuǎn)向。在安卓系統(tǒng)中,賽車的動(dòng)力是自動(dòng)添加的,所以我們這里只需要添加一個(gè)剎車按鈕實(shí)現(xiàn)剎車功能即可。對于重力感應(yīng)的實(shí)現(xiàn),在Unity中只需修改賽車的控制方式。在Unity中的Input方法是檢測輸入的一個(gè)方法,他下面有許多關(guān)于不同的操控方式的方法。對于重力感應(yīng)而言。我們可以用Input.acceleration實(shí)現(xiàn)。Input.acceleration是一個(gè)三維向量,x方向控制左右傾斜,y方向控制前后傾斜,我們用x方向可以檢測

54、到手機(jī)上重力感應(yīng)系統(tǒng)的傾斜度,從而計(jì)算出賽車應(yīng)該轉(zhuǎn)向的角度,實(shí)現(xiàn)左右轉(zhuǎn)向。剎車控制用一個(gè)按鈕實(shí)現(xiàn),只需將這個(gè)按鈕設(shè)置代替鍵盤上后退鍵的功能。3:AI控制本游戲中的AI控制主要為一個(gè)電腦控制賽車與玩家控制賽車進(jìn)行比賽的控制。它可以實(shí)現(xiàn)電腦小車按照規(guī)定的路線跑動(dòng),比較玩家賽車和AI賽車誰先到達(dá)終點(diǎn),先到的即為獲勝。AI小車的主要實(shí)現(xiàn)方法為在賽道上設(shè)置許多個(gè)路點(diǎn)(WayPoint),AI賽車不斷的達(dá)到各個(gè)WayPoint,然后向下一個(gè)WayPoint移動(dòng),最后到達(dá)終點(diǎn)。4:游戲流程控制游戲流程的控制主要是通過GUI系統(tǒng)中的各個(gè)按鈕實(shí)現(xiàn)的,通過不同的按鈕進(jìn)入不同的界面,從而完成游戲流程,具體流程見上各

55、各界面交互流程圖。第5章 基于安卓系統(tǒng)的手機(jī)賽車游戲?qū)崿F(xiàn)與測試5.1 總體實(shí)現(xiàn) 基于安卓系統(tǒng)的手機(jī)賽車游戲立足于現(xiàn)有的賽車游戲,同時(shí)又加以風(fēng)格上的改變和創(chuàng)新,形成了一款偏向于休閑娛樂化,風(fēng)格卡通化,界面美觀大方的賽車游戲。本游戲的主要可視化部分主要包括界面的實(shí)現(xiàn)和游戲主體內(nèi)容的實(shí)現(xiàn)。進(jìn)入游戲界面如圖5-1: 圖5-1 進(jìn)入游戲界面圖車輛選擇界面如圖5-2: 圖5-2 車輛選擇界面效果圖游戲運(yùn)行情況如圖5-3:圖5-3:游戲運(yùn)行圖5.2 模塊實(shí)現(xiàn)5.2.1 賽車運(yùn)動(dòng)模塊的實(shí)現(xiàn)賽車運(yùn)動(dòng)的實(shí)現(xiàn)主要依賴于Unity3D物理引擎中專為賽車游戲而設(shè)計(jì)的方法WheelCollider。WheelCollid

56、er實(shí)質(zhì)上是一個(gè)給賽車車輪添加的一個(gè)車輪碰撞器。車輪碰撞器是一個(gè)特殊的地面車輛碰撞器。它具有內(nèi)置的碰撞檢測、車輪物理引擎和一個(gè)基于滑移的輪胎摩擦模型。當(dāng)然,它也可以用于其他對象,但它是專門為有輪子的車輛設(shè)計(jì)。1:賽車加速的實(shí)現(xiàn)賽車的加速主要是由motorTorque方法實(shí)現(xiàn)的。motorTorque是賽車的動(dòng)力值,也可理解為賽車的加速度,我們可以自己設(shè)計(jì)它的數(shù)值來控制賽車加速的快慢。核心代碼如下: public float motorTorque = 20; if (currentSpeed > maxSpeed && vertical > 0) | (currentSpeed < -minSpeed && vertical < 0) flWheelCol

溫馨提示

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

最新文檔

評論

0/150

提交評論