游戲設(shè)計綜合實(shí)驗(yàn)報告_第1頁
游戲設(shè)計綜合實(shí)驗(yàn)報告_第2頁
游戲設(shè)計綜合實(shí)驗(yàn)報告_第3頁
游戲設(shè)計綜合實(shí)驗(yàn)報告_第4頁
游戲設(shè)計綜合實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、叮叮小文庫游戲設(shè)計Supper jumper學(xué) 校:學(xué)院:計算機(jī)學(xué)院班 級:指導(dǎo)老師:小組成員:2014年05月30日目錄第一章引言3第二章需求分析42.1系統(tǒng)開發(fā)目標(biāo)42.2系統(tǒng)需求分析42.2.1業(yè)務(wù)需求分析4222用戶需求分析42.2.3功能需求分析 4第三章系統(tǒng)概要設(shè)計53.1背景故事53.2游戲程序流程設(shè)計 6圖3.2游戲程序流程圖6第四章系統(tǒng)詳細(xì)設(shè)計64.1畫面和切換64.2定義游戲世界74.3系統(tǒng)功能模塊84.4儲存素材94.5游戲界面104.6分?jǐn)?shù)榜設(shè)定114.7游戲總控制124.8游戲設(shè)置12第五章軟件運(yùn)行與測試135.1系統(tǒng)測試135.1.1游戲頁面顯示 135.1.2移動

2、主角測試135.1.3主角碰到金幣測試 135.1.4判定結(jié)束測試135.1.5暫停測試135.1.6恢復(fù)測試135.1.7壓力測試135.2結(jié)果分析13第六章結(jié) 論1415第一章引言安卓游戲是運(yùn)行在安卓系統(tǒng)平臺的游戲, 隨著移動終端設(shè)備的發(fā)展,安卓游 戲不但可以運(yùn)行于智能手機(jī),也可以運(yùn)行在平板電腦上。安卓游戲的系統(tǒng)架構(gòu)和 其它操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,an droid分為四個層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和linux核心層。An droid是以Li nux為核心的手機(jī)操作平臺,作為一款開放式的操作系統(tǒng), 隨著An droid的快速發(fā)展,如今已

3、允許開發(fā)者使用多種編程語言來開發(fā)An droid應(yīng)用程序,而不再是以前只能使用Java開發(fā)An droid應(yīng)用程序的單一局面,因而 受到眾多開發(fā)者的歡迎,成為真正意義上的開放式操作系統(tǒng)。An droid開放的平臺允許任何移動終端廠商加入到 An droid聯(lián)盟中來。顯著的開放性可以使其擁有 更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟。 開發(fā)性對于An droid的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠 商,而對于消費(fèi)者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費(fèi)者將可以用更低的價位購得心儀的手機(jī)。SDK ( softwa

4、re development kit )軟件開發(fā)工具包。被軟件開發(fā)工程師用于 為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的 集合。An droid SDK指的是An droid專屬的軟件開發(fā)工具包。libgdx是一個跨平臺的2D/3D的游戲開發(fā)框架,它由Java/C/C+語言編寫而 成o ibgdx兼容大多數(shù)微機(jī)平臺(標(biāo)準(zhǔn)JavaSE實(shí)現(xiàn),能運(yùn)行在Mac、Linux、Windows 等系統(tǒng),最近加入了對 html5的支持)與An droid平臺(An droid1.5以上即可使 用,Android2.1以上可滿功率發(fā)揮)。Libgdx以native方式自帶圖像解碼器,

5、通 過其提供的Pixmap可以對指定圖像進(jìn)行像素級渲染操作,從而不依賴An droid的Bitmap加載處理圖像,可以支持 png、jpg、bmp,最近的兩個版本中加入了 對gif 圖片的支持.Libgdx 由 audio、files、graphics math、physics scenes utils 這些主要類庫所組成,它們分別對應(yīng)了Libgdx中的音頻操作,文件讀取,2D/3D渲染,Libgdx繪圖相關(guān)運(yùn)算,Box2D封裝,2D/3D游戲組件(3D部分目前無組件), 以及Libgdx內(nèi)置工具類。Gdx是Libgdx類庫運(yùn)行的核心所在,不單運(yùn)行Graphics In put、Files、A

6、udio、 AndroidApplication等Libgdx關(guān)鍵部分,所必需的實(shí)例會在Libgdx初始化時注入Gdx 中對應(yīng)的 graphics、input、files、audio、app 等靜態(tài)變量里面,就連 Libgdx 對OpenGL接口(或OpenGLES視Libgdx運(yùn)行平臺而定,以下統(tǒng)稱 OpenGL)的 GL10 GL11、GL20 GLCommon等封裝類也會在 Graphics實(shí)例化時分別注入到 gl10、gl11、gl20、gl這四個同樣位于 Gdx的靜態(tài)變量當(dāng)中。第二章需求分析這是一款跳躍型的游戲,主人物會一直往上跳,我們只需控制左右移動讓其 踩在適當(dāng)?shù)奶_上即可繼續(xù)的

7、往上跳,最終加到的金幣越多,同時要避開飛在空 中的蜜蜂,直到到達(dá)最頂部的城堡,才進(jìn)入下一關(guān)。2.1系統(tǒng)開發(fā)目標(biāo)采用基于An droid的Java編程技術(shù),以及用Libgdx框架的相關(guān)技術(shù)開發(fā)出界 面簡潔清新,易操作,細(xì)節(jié)精致,設(shè)置齊全的Supperjumper游戲。2.2系統(tǒng)需求分析2.2.1業(yè)務(wù)需求分析總所周知,SupperJumper是一款經(jīng)典不過時的游戲,它無論在電腦,小霸 王,手機(jī)都有它的身影,即使現(xiàn)在市場上各種游戲百花齊放,各種各樣,但是 SupperJumper依然能夠占有一席之地,其市場還是很大的.這是由于它的特殊在 于它能吸引人更深入,簡單上手,該游戲的優(yōu)勢在于它的簡單易行,不

8、論是小游戲 機(jī)還是手機(jī),都能很快順利的運(yùn)行.2.2.2用戶需求分析游戲設(shè)計出來后,其質(zhì)量還是要由用戶來評判的,在游戲?yàn)橛脩羲脮r,用 戶也對游戲有自己的期望和要求。(1) 簡單易學(xué)每個人的時間都是寶貴的,用戶不愿意花一大堆時間去學(xué)習(xí)如何玩意個游 戲,因此游戲必須很容易上手,要求界面簡潔明了,否則太復(fù)雜難懂的話會讓很 多客戶離去。(2) 運(yùn)行穩(wěn)定一個游戲如果設(shè)計出來卻不能保證其穩(wěn)定性,那么就可能使游戲無法正常運(yùn) 行。如果用戶正在游戲突然軟件崩潰了, 無疑會讓用戶感到煩躁,從而把軟件給 卸載了,這樣也會失去很多用戶。(3) 操作簡便用戶之所以選擇 SupperJumper,就是由于其快捷簡便性,所

9、以我們要讓用 戶玩的舒心則必然要設(shè)計出一套操作簡便的系統(tǒng)。2.2.3功能需求分析本項(xiàng)目是一個運(yùn)行在安卓手機(jī)上的游戲,我們初步設(shè)定本游戲具有以下幾個 功能。?游戲的主角不斷向上跳躍,從一個平臺跳到另一平臺。游戲世界在垂直方向跨了多個畫面。?通過左右傾斜屏幕來控制水平移動。?當(dāng)游戲主角離開水平屏幕邊界時,它將從屏幕相反的一邊重新進(jìn)入。?平臺可以靜止或者水平移動。?有些平臺在主角撞上時會隨機(jī)地變得粉碎。?在向上的路上,主角可以收集物品來獲得分?jǐn)?shù)。?除了錢幣,在一些平臺上會有彈簧,它們可以使主角跳得更高。?邪惡的力量充滿了游戲世界,它們水平移動。當(dāng)碰上它們時,主角將死亡 并且游戲結(jié)束。?當(dāng)主角掉落到屏

10、幕的底部邊緣時,游戲也將結(jié)束。?在關(guān)卡的頂部會有一些目標(biāo),當(dāng)主角碰上目標(biāo),新的關(guān)卡將開始。?當(dāng)游戲結(jié)束后,顯示玩家在游戲中所獲得的分?jǐn)?shù)。第三章系統(tǒng)概要設(shè)計3.1背景故事游戲的主角得了慢性跳躍癥。他每次接觸到地面都必須進(jìn)行跳躍。更糟的是, 他深愛的公主(不給她取名字了)被會飛行的松鼠殺手組成的邪惡軍隊綁架,關(guān)在 天上的一個城堡中。在這種情況下,主角的病癥反而對拯救公主有所幫助。 他開 始尋覓心愛的人,與邪惡的松鼠軍隊?wèi)?zhàn)斗。圖3.1初始的游戲機(jī)制實(shí)物模型,顯示了主角、平臺、錢幣、邪惡勢力和關(guān)卡頂部的目標(biāo)3.2游戲程序流程設(shè)計本游戲程序流程圖如圖3.2所示護(hù)人懈戲畫面1f排行榜游戲卄始游戲幫助游戒過

11、程廿戲廷子到達(dá)目的地 磁到障礙物游戲恢艮游戲結(jié)束圖3.2游戲程序流程圖第四章系統(tǒng)詳細(xì)設(shè)計4.1畫面和切換?有一個帶標(biāo)識的主畫面;有 PLAY HIGHSCORE和HELP菜單項(xiàng);并有一個 按鍵來控制聲音的開啟和關(guān)閉。?有一個游戲畫面來詢問玩家是否準(zhǔn)備好控制運(yùn)行、暫停、結(jié)束游戲和下一 關(guān)卡的狀態(tài)。比起Mr. Nom,這里只是新增了畫面的下一關(guān)卡狀態(tài),它將在主角 碰到城堡時觸發(fā)。這時新的關(guān)卡生成,并且主角將重新從世界的底部開始并保持 他的分?jǐn)?shù)。?有一個高分畫面用來顯示玩家最高的 5個分?jǐn)?shù)。?有一個幫助畫面來說明游戲機(jī)制和玩家的目標(biāo),此處省略了玩家如何進(jìn)行 控制的描述。ffl.0VJIIf1ii.f

12、MOTHEH wian EF圖4.1 Super Jumper的所有畫面和切換rumjiimrrp4.2定義游戲世界在世界空間中按物理規(guī)律定義了對象,其邊界形狀和位置的度量單位是米, 速度的度量單位是米/秒。但對象的圖像表示使用像素定義,因此不得不做一些 映射。解決這個問題的方法是首先針對圖像資源定義目標(biāo)分辨率。與Mr. Nom 一樣,此處使用的目標(biāo)分辨率是 320X480像素(縱橫比是1.5)。之所以使用這個目 標(biāo)分辨率,是因?yàn)檫@是最低的可行的分辨率,但是如果游戲?qū)iT針對平板電腦, 則可以使用800X 1 280像素這樣的分辨率,或者這兩種分辨率之間的一種分辨 率,例如480X 800像素(

13、典型的An droid手機(jī))。不管目標(biāo)分辨率如何,其原理是 相同的。接下來在像素和世界空間中的米之間建立對應(yīng)關(guān)系。圖3.1中的實(shí)物模型顯示了不同對象使用的畫面空間的大小以及它們間的相對比例。對于2D游戲,此處推薦將32像素映射為1米。那么現(xiàn)在在實(shí)物模型上覆蓋一個網(wǎng)格,網(wǎng)格的尺 寸是320 X 380像素,每個單元格大小是32 X 32像素。在世界空間中,單元格映 射為1 X 1米的大小。圖4.2顯示的是實(shí)物模型和網(wǎng)格。圖4.2覆蓋網(wǎng)格的實(shí)物模型。每個單元格是32 X32像素,對應(yīng)游戲世界的1X 1米? Bob是0.8 X 0.8米;它并不完全占用一個單元格。?平臺是2X 0.5米,水平占據(jù)兩個

14、單元格,垂直占據(jù)半個單元格。?錢幣是0.8 X 0.5米。它幾乎垂直占據(jù)一個單元格,水平占據(jù)半個單元格。?彈簧是0.5 X 0.5米,在兩個方向上各占據(jù)半個單元格。實(shí)際上彈簧垂直方 向比水平方向要稍長一點(diǎn)。它的邊界形狀是正方形,因此碰撞測試不是十分 嚴(yán)格。? 松鼠是1 X 0.8米。? 城堡是0.8 X 0.8米。由這些尺寸可以得到用于碰撞檢測的對象的邊界矩形的尺寸。它們的大小可以根據(jù)游戲?qū)@些值的使用方式進(jìn)行調(diào)整。由于當(dāng)主角出了屏幕底部邊緣時將死亡, 這樣照相機(jī)也將在游戲機(jī)制中扮演 角色。雖然我們使用照相機(jī)進(jìn)行渲染并且當(dāng)主角跳起時也向上移動它,但在世界的模擬類中并不使用它,而記錄到目前為止主

15、角的最高 y坐標(biāo)。如果他低于這個 值與視錐體一半高度的差值,那么就認(rèn)為它離開了屏幕。由于需要根據(jù)視錐的高 度來決定主角的生死,因此并不能夠使模型(世界模擬類)和視圖之間完全獨(dú)立, 對此是可以容忍的。4.3系統(tǒng)功能模塊本系統(tǒng)一共有23個類文件,java源文件及其功能如表4-1所示:表4-1 java源文件及其功能圖序號文件名主要功能1SuperJumper啟動入口2Sett ings記錄聲音開啟關(guān)閉3Assets各種資源的讀取4Mai nMen uScree n主菜單界面5OverlapTester檢測各種碰撞6Ani matio n動畫的兩種狀態(tài),循環(huán)和不循環(huán)(不循環(huán)則動畫 播放完畢后停留在最

16、后一張圖片上)7GameObject所有的游戲物體都會在一個平面內(nèi)繪制(或者說 在屏幕大小內(nèi)繪制),那么所有的物體都應(yīng)該包 含一個位置8Helpscree n顯示游戲的幫助畫面9HighscoreScree n顯示游戲的分?jǐn)?shù)榜畫面10GameScree n顯示游戲的不同狀態(tài)的畫面11World實(shí)現(xiàn)控制運(yùn)行等總體要求,如放置金幣,主角移 動速度,主角是否存活等。12WorldRe nderer用來把每個對象關(guān)聯(lián)相應(yīng)的圖片資源,同時控制 相機(jī),實(shí)現(xiàn)動畫。13Dyn amicGameObjectx, y軸方向相關(guān)的運(yùn)動信息14Bob主角15Castle城堡16Coi n金幣17Platform平臺1

17、8Spri ng彈簧19Squirrel空中飛行的松鼠4.4儲存素材在本游戲會用到一些圖片和音效素材,如圖4.2所示,Assets類的實(shí)際作用就是用靜態(tài)變量把這些個要用到的圖片,音效文件保存下來,放到內(nèi)存中(從Asset 文件夾中加載的資料文件).之后就可以在代碼中方便的使用到這些資源文件,比如 game.getGraphics().drawPixmap(Assets.background, 0,)0。bckgrcmnd.pn9dickoggcoinoggfcrt,fnthlp.pngTr?*Tirmhi|p2ipngfcmpngh&lp4uprgIhlpLpngimrrp ItlMPFChe

18、lp3-pngjump.cgg items.pnglibgdx.png圖4.2圖片音效素材hdp5prigmiUsiz.mpSpublics daLSS Asset-s publia statia Texture background;pablic stati a Tscr.nrR&grork H良亡立才上門垃蠱曲蘭才二豐:,背景pabliG publiapdbliastatic r&sct-tirR&arQripuiLi a stati aTex匸;it巳氏已甲丄口二so Lind ;static Texture items; f/ 系列的圖片 static TextureReglon md

19、inMsnu; /壬菜單public statia4.5游戲界面背景圖片不僅使用在主菜單畫面,也使用在所有的畫面上。它與目標(biāo)分辨率大小一樣,都是320X 480像素。主菜單項(xiàng)記錄是 300 X 110像素。在圖5顯示的背景是黑色的,這是因?yàn)榘?底白字是看不清的。在實(shí)際的圖片中,背景使用的是透明像素。logo是274X 142像素,在其4個角上使用了透明像素。再接下來是幫助畫面的圖片。此處使用了一個320X 480像素的全屏圖片,而不是使用一組元素組合。這樣做將減少繪制代碼的數(shù)量,因此不會增加程序的大小。圖2中顯示了所有的幫助畫面,唯一組合這些圖片的是箭頭按鈕。對于高分畫面,將重用主菜單項(xiàng)中顯示

20、“HIGHSCORES的圖片部分。實(shí)際的分?jǐn)?shù)將使用本章稍后將介紹的特殊技術(shù)進(jìn)行渲染。畫面剩下的部分再次使用背景圖片和按鈕組成。MySuiperJumpef 刃 VoNiu圖4.3游戲主界面濤戲界面界面匚iRLlEE = new Texc口I:皂貸皂寸:lon (壬上芒血営”64,64,64,C4);psuseMsru = new TextureRegiOTi224r 22er 192 9) Jrsady = new “耳匸口“Rugi匚八(丄七翎:片 32Q22f32;gam-Ovr new TexrureReqion (itM:5r 352, 256, 160 96);highSceesRe

21、-? 1 on = new TexcureEt已口丄口口(Asse匸日-丄七三西占* 0*257,300, 1J4.6分?jǐn)?shù)榜設(shè)定很多游戲都有個高分榜這個設(shè)置,Supperjumper也不例外,也有自己的英雄榜”,上面按遞減順序排列了 5個分?jǐn)?shù),每個玩家結(jié)束游戲后都會有得到一個分?jǐn)?shù),如果超過分?jǐn)?shù)榜上最低一個,那么這個分?jǐn)?shù)就可以進(jìn)入分?jǐn)?shù)榜,如圖4.4所示。 M0j|wrumptr b Wohw HTGHSCORE31. AOO2. &O3. 5 04. 30圖4.4游戲高分榜public class HighscoreScree n exte nds Scree n Stri ng lin es

22、= new Stri ng5;public HighscoreScree n( Game game) super(game);public HighscoreScree n( Game game) super(game);for (int i = 0; i 5; i+) li nesi = + (i + 1) + . + Setti ngs.highscoresi;4.7游戲總控制? 重力加速度向量是(0,-13)米/秒2,它比現(xiàn)實(shí)中和炮示例中使用的重力加速度要稍 大。? Bob的初始跳躍速度向量是(0,11)米/秒。注意,跳躍速度只影響在y軸上的移動。水平移動則由加速度的當(dāng)前讀數(shù)定義。? 當(dāng)

23、碰到彈簧時,Bob的跳躍速度是他正常跳躍速度的1.5倍,即(0,16.5)米/秒。同樣,這個值也是純粹通過實(shí)驗(yàn)得到。? Bob的水平移動速度是20米/秒。注意,這是一個無方向的速率,不是向量。稍后將 講解它是如何與加速計共同工作的。? 松鼠不斷地左右來回巡邏,它們的移動速度恒定為3米/秒。表示成向量則是,當(dāng)松鼠向左移動時是(-3,0)米/秒,當(dāng)它向右移動時是(3,0)米/秒。由于游戲是運(yùn)行在縱向模式的,因此將使用加速計在X軸方向的值。當(dāng)手機(jī)沒有 發(fā)生傾斜時,x軸的加速度讀數(shù)是0米/秒2。當(dāng)完全向左傾斜至手機(jī)處于橫向時, x軸的加速計讀數(shù)是-10米/秒2。當(dāng)完全向右傾斜時,x軸的加速計讀數(shù)為10

24、 米/秒2。把加速計讀數(shù)除以最大絕對速度(10)使其規(guī)范化,然后乘以 Bob最大 的水平速率,就得到了 Bob的速度。這樣當(dāng)手機(jī)完全傾斜到一邊時,Bob將以20 米/秒從左向右運(yùn)動,并且速度隨手機(jī)傾斜變小而變小。當(dāng)手機(jī)完全傾斜時,Bob的速度能達(dá)到兩倍于平時的速度。4.8游戲設(shè)置這里的游戲游戲設(shè)置主要是指游戲運(yùn)行的音效音樂的播放控制,同時還設(shè)置了分?jǐn)?shù)榜數(shù)據(jù)的儲存位置。/定義了音效的開關(guān)public class Sett ings public static boolea n soundEn abled = true;try /設(shè)置了音效高分榜等數(shù)據(jù)存儲的位置in = new BufferedR

25、eader( new In putStreamReader( files.readFile(.mrnom);至此,SupperJumper游戲各個類與功能設(shè)計完畢。第五章軟件運(yùn)行與測試5.1系統(tǒng)測試5.1.1游戲頁面顯示(1)運(yùn)行程序,出現(xiàn)游戲界面。(2)游戲界面顯示是否正常,游戲邊框,主角以及金幣是否全部顯示。5.1.2移動主角測試分別按方向鍵左、右,主角按所指示方向移動。5.1.3主角碰到金幣測試(1)主角碰到金幣后,金幣會消失,無異常。(2)主角碰到金幣后,分?jǐn)?shù)增加10分,無異常。5.1.4判定結(jié)束測試(1)移動主角,分別左、右兩個方向移動,直至到達(dá)城堡。此時,游戲會結(jié) 束。(2)移動主角,到一定高度后,撞擊到松鼠。此時,游戲會結(jié)束。5.1.5暫停測試游戲中途按暫停鍵,會暫停

溫馨提示

  • 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

提交評論