![Unity課程設(shè)計_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/2/79b4d604-c577-463c-a4fd-8608f780cfbd/79b4d604-c577-463c-a4fd-8608f780cfbd1.gif)
![Unity課程設(shè)計_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/2/79b4d604-c577-463c-a4fd-8608f780cfbd/79b4d604-c577-463c-a4fd-8608f780cfbd2.gif)
![Unity課程設(shè)計_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/2/79b4d604-c577-463c-a4fd-8608f780cfbd/79b4d604-c577-463c-a4fd-8608f780cfbd3.gif)
![Unity課程設(shè)計_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/2/79b4d604-c577-463c-a4fd-8608f780cfbd/79b4d604-c577-463c-a4fd-8608f780cfbd4.gif)
![Unity課程設(shè)計_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/2/79b4d604-c577-463c-a4fd-8608f780cfbd/79b4d604-c577-463c-a4fd-8608f780cfbd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、移動終端游戲開發(fā)課程設(shè)計說明書題目: flappy bird游戲設(shè)計 院 系: 專業(yè)班級: 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 2016年 6 月 30 日安徽理工大學(xué)課程設(shè)計(論文)任務(wù)書 學(xué)院 學(xué) 號學(xué)生姓名專業(yè)(班級)設(shè)計題目 flappy bird游戲設(shè)計 設(shè)計技術(shù)參數(shù)系統(tǒng)平臺:windows 7開發(fā)工具:unity、monodevelop開發(fā)語言:c#設(shè)計要求1.能夠統(tǒng)計分數(shù),并記錄以往最高分2.管道出現(xiàn)具有隨機性3.界面合理、友好工作量課程設(shè)計報告4945字源程序314行工作計劃2016.04.15-04.22 根據(jù)課程設(shè)計的要求,查找相關(guān)資料,完成需求分析;2016.04.23-0
2、5.07 進行系統(tǒng)的概要設(shè)計;2016.05.08-06.12 進行系統(tǒng)的詳細設(shè)計和源代碼的書寫;2016.06.13-06.30 對系統(tǒng)進行調(diào)試分析,撰寫課程設(shè)計報告。參考資料1嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu). 北京:清華大學(xué)出版社,2011 2立波.c#入門經(jīng)典.北京:清華大學(xué)出版社,2006 3金璽曾.unity3d手機游戲開發(fā).北京:清華大學(xué)出版社,2013 4指導(dǎo)教師簽字教研室主任簽字 2016年 4月 1 日 安徽理工大學(xué)課程設(shè)計(論文)成績評定表學(xué)生姓名: 學(xué)號: 專業(yè)班級: 課程設(shè)計題目: flappy bird游戲設(shè)計 評價單元評價要素
3、評價內(nèi)涵優(yōu)良中差知識水平30%文獻查閱與知識運用能力(20分)能獨立查閱文獻資料,并能合理地運用到程序設(shè)計訓(xùn)練之中;能將所學(xué)課程(專業(yè))知識準(zhǔn)確地運用到程序設(shè)計之中,并歸納總結(jié)本程序設(shè)計訓(xùn)練所涉及的有關(guān)課程知識程序設(shè)計方案(10分)程序設(shè)計整體思路清晰,程序設(shè)計方案合理可行設(shè)計表現(xiàn)50%工作量(10分)課程設(shè)計工作量飽滿設(shè)計態(tài)度(10分)設(shè)計態(tài)度認真,遵守程序設(shè)計階段的紀(jì)律,作風(fēng)嚴(yán)謹,能按時完成設(shè)計任務(wù)書中規(guī)定的任務(wù),按時上交課程設(shè)計有關(guān)資料實際動手能力(20分)實際動力能力強,能獨立完成相關(guān)設(shè)計任務(wù)創(chuàng)新能力(10分)有一定的創(chuàng)新能力說明書質(zhì)量20%寫作水平(10分)整體思路清晰,結(jié)構(gòu)合理,層
4、次分明,語言表達流暢,綜合概括能力強寫作規(guī)范(10分)符合課程設(shè)計說明書的基本要求,用語、格式、圖表、數(shù)據(jù)及各種資料引用規(guī)范(符合標(biāo)準(zhǔn))成績: 指導(dǎo)教師: 年 月 日目錄1 需求分析12 概要設(shè)計12.1 設(shè)計思路12.2 存儲結(jié)構(gòu)設(shè)計22.3 功能模塊設(shè)計33 詳細設(shè)計33.1 游戲工程視圖33.2 游戲界面布局53.3 功能模塊設(shè)計實現(xiàn)63.3.1游戲開始設(shè)計63.3.2小鳥移動模塊設(shè)計73.3.3管道碰撞模塊設(shè)計83.3.4場景延續(xù)模塊設(shè)計83.3.5分數(shù)統(tǒng)計模塊設(shè)計83.3.6游戲結(jié)束模塊設(shè)計93.4 其他設(shè)計實現(xiàn)103.4.1 攝像機的跟隨103.4.2 游戲音效的添加113.4.3
5、 游戲開始界面的設(shè)計114 運行與測試125 總結(jié)15參考文獻15 1 需求分析1.技術(shù)需求: 此游戲是在unity5.3.3上開發(fā)出來的,unity5.3.3可以支持2d、3d場景的編輯,本游戲是基于3d場景開發(fā)的。游戲中的腳本語言使用的是c#,unity5.3.3中的monodevelop為腳本編輯提供了平臺。2.功能需求: flappy bird是一款益智類的小游戲,其玩法為:游戲開始后,玩家需間歇性的點擊鼠標(biāo),讓小鳥向上飛,不會掉下來,并且要穿過隨機出現(xiàn)的管道的間隙,不能碰到管道,碰到就游戲結(jié)束,穿過一個管道就可以得到一分。其制作包括對以下六大功能的需求:(1)當(dāng)開始游戲后,玩家需要單
6、擊指定位置才能開始游戲,否則無法開始;(2)需要通過點擊屏幕來控制小鳥的位置,完成使小鳥上下移動的功能;(3)需要對小鳥是否碰到地面或者管道進行判斷,從而決定游戲是否結(jié)束;(4)需要設(shè)置觸發(fā)器以實現(xiàn)場景的延續(xù),當(dāng)小鳥碰到觸發(fā)器,場景中的第一幅背景便挪到最后一幅的后面,從而實現(xiàn)視覺上場景不斷出現(xiàn)的效果;(5)需要對玩家進行記分,并對最高分進行判斷和存儲;(6)在失敗后,需要使玩家通過點擊按鈕重新開始游戲。 2 概要設(shè)計2.1 設(shè)計思路flappybird是一款形式簡易但難度極高的休閑游戲,我們打算使用unity開發(fā)工具來制作這款游戲。經(jīng)過分析,我們首先要完成的是對素材的收集,我們可以從網(wǎng)上搜索下
7、載,也可以自己使用ps等工具來畫。其次,我們需要對整個游戲進行模塊劃分,理清整個游戲是由哪幾個模塊組成的,經(jīng)過討論分析,我們得出這個游戲共需要六大模塊。分析完之后,便進入了正式的游戲制作環(huán)節(jié),我們需要對各個模塊進行詳細設(shè)計,其中包括頁面布局、碰撞檢測、小鳥飛行動畫等。完成各個模塊的詳細設(shè)計后,我們便可以在unity中對它們進行組裝和拼接,并運行測試,修改錯誤和不適當(dāng)?shù)牡胤?。自此,整個游戲就設(shè)計完成了。2.2 存儲結(jié)構(gòu)設(shè)計 1pipe類:管道設(shè)計 float pos_y /管道的y軸值,目的是為了使管道能隨機出現(xiàn) 2bird類:小鳥設(shè)計 publicfloattimer;/計時器,為了控制顯示小
8、鳥飛行動畫 publicintframenumber;/一秒的幀數(shù) publicintframecount;/ 幀計數(shù)器 3. followbird類:攝像機設(shè)計 private gameobject bird; private transform birdtransform;/bird的位置 4. gamemanager類:游戲狀態(tài)設(shè)計 publicstaticintgamestate_menu;/游戲菜單狀態(tài) publicstaticintgamestate_playing;/游戲中狀態(tài) publicstaticintgamestate_end; /游戲結(jié)束狀態(tài) publictransfo
9、rmfirstbg;/用來記錄應(yīng)該將第一幅場景挪到哪幅場景 的后面,以實現(xiàn)場景延續(xù) publicintscore=0;/記錄分數(shù) 5. movetrrigger類:觸發(fā)器設(shè)計 transform currentbg;/用于當(dāng)前場景的位置 pipe pipe1;/用于新出現(xiàn)的場景中管道1的位置pipe pipe2;/用于新出現(xiàn)的場景中管道2的位置 6. gamemenu類:游戲結(jié)束菜單設(shè)計publicguitextnowscore;/當(dāng)前分數(shù)publicguitexthighscore;/歷史最高分publicguitexturestarttexture;/開始按鈕圖片publicguitext
10、ureovertexture; /“game over”圖片 7. gameready類:游戲開始菜單設(shè)計publicguitexturereadytexture;/“getready”圖片 publicguitexturetoptexture;/“tap tap”圖片 publicstaticgameready_intance2; 2.3 功能模塊設(shè)計flappy bird游戲具有六大功能模塊,分別為:(1) 游戲開始模塊:包括游戲開始菜單的設(shè)計;(2) 小鳥移動模塊:包括對小鳥飛行進行控制的設(shè)計;(3) 管道碰撞模塊:包括管道碰撞和穿過管道即可得分的設(shè)計;(4) 場景延續(xù)模塊:包括場景觸發(fā)
11、器的設(shè)計;(5) 分數(shù)統(tǒng)計模塊:包括對玩家分數(shù)的統(tǒng)計、顯示和在游戲結(jié)束時,對玩家的分數(shù)進行判斷的設(shè)計;(6) 游戲結(jié)束模塊:包括游戲結(jié)束菜單的設(shè)計;其功能模塊圖如圖2-1所示:flappy bird小鳥移動模塊管道碰撞模塊場景延續(xù)模塊分數(shù)統(tǒng)計模塊游戲結(jié)束模塊游戲開始模塊 圖2-1 功能模塊圖3 詳細設(shè)計3.1 游戲工程視圖在新建項目后,我們需要在“assets”文件夾下導(dǎo)入素材“audios”:游戲音樂素材文件夾,包括游戲開始音樂、小鳥煽動翅膀的音樂、得分的音樂、撞到管道和地面的音樂、小鳥死亡的音樂;“textures”:圖片素材文件夾,包括:游戲背景、管道、小鳥、游戲菜單等。“audios”
12、文件夾如圖3-1所示: 圖3-1 “audios”文件夾“textures”文件夾如圖3-2所示: 圖3-2 “textures”文件夾然后我們需要新建“materials”:材質(zhì)文件夾;“prefabs”:預(yù)制文件夾;“scenes”:游戲場景文件夾;“scripts”:腳本文件夾。總體工程視圖如圖3-3所示: 圖3-3 總體工程視圖3.2 游戲界面布局1.開始界面 游戲開始界面如圖3-4所示,左上角的“score”為分數(shù),中間的圖畫為開始按鈕,單擊“getready”即可開始游戲,右邊的管道為小鳥行進途中的障礙,當(dāng)小鳥碰到障礙,游戲便結(jié)束,但當(dāng)小鳥通過一個障礙即可得一分。 圖3-4 開始界
13、面2.結(jié)束界面 游戲結(jié)束界面如圖3-5所示,中間的為菜單欄,顯示當(dāng)輪游戲分數(shù)和歷史最高分,并根據(jù)分數(shù)來顯示所得獎牌的種類,分為金牌、銀牌、銅牌,我們可以單擊“重新開始”按鈕來重新開始游戲。 圖3-5 結(jié)束界面3.3 功能模塊設(shè)計實現(xiàn)3.3.1游戲開始設(shè)計游戲開始界面與游戲進行界面相似,但一開始沒有管道,目的是為了給玩家一個反應(yīng)的時間。當(dāng)程序檢測到玩家在游戲界面內(nèi)點擊了鼠標(biāo),那么就進入了游戲進行界面。程序如下: public static int gamestate_menu =0; public static int gamestate_playing =1; public static in
14、t gamestate_end =2; void update ()if (gamestate =gamemanager.gamestate_menu) if (input.getmousebuttondown (0) gamestate = gamestate_playing;bird.sendmessage (getlife); public void getlife()getcomponent().usegravity = true;this.getcomponent().velocity = new vector3(3,0,0);3.3.2小鳥移動模塊設(shè)計 進入游戲進行界面后,小鳥會顯
15、示飛行的動畫,在unity中進行相關(guān)參數(shù)的設(shè)置后,我們需要通過代碼來控制小鳥飛行動畫,程序如下:if(gamemanager._intance.gamestate=gamemanager.gamestate_playing)timer+=time.deltatime;if(timer=1.0f/framenumber)framecount+;timer-=1.0f/framenumber;intframeindex=framecount%3;this.getcomponent().material.settextureoffset (_maintex,newvector2(0.333333f*
16、frameindex,0);我們通過點擊鼠標(biāo)來控制小鳥進行移動,程序如下:if(gamemanager._intance.gamestate =gamemanager.gamestate_playing)if(input.getmousebutton(0) /按下左鍵 getcomponent().play(); vector3vel2=this.getcomponent().velocity; this.getcomponent().velocity = newvector3(vel2.x,4,vel2.z); 3.3.3管道碰撞模塊設(shè)計 當(dāng)小鳥碰撞到管道,游戲便結(jié)束,此時我們便不能再控制小
17、鳥進行移動,管道碰撞程序如下:voidoncollisionenter(collisionother) if(other.gameobject.tag=player) hitmusic.play(); diemusic.play(); gamemanager._intance.gamestate=gamemanager.gamestate_end; 3.3.4場景延續(xù)模塊設(shè)計 當(dāng)小鳥在飛行過程中,后面的場景應(yīng)該是不斷更新的,我們需要在第三個場景中設(shè)置一個觸發(fā)器,當(dāng)小鳥碰撞到這個觸發(fā)器后,我們便把第一個場景挪到最后面,這樣我們的場景就能一直不斷的更新,程序如下:publicvoidontrigg
18、erenter(colliderother) print(ontriggerenter); if(other.tag=player) transformfirstbg = gamemanager._intance.firstbg; currentbg.position=newvector3(firstbg.position.x+10,currentbg.position.y,currentbg.position.z); gamemanager._intance.firstbg=currentbg; /管道的新位置 pipe1.randomgenerateposition(); pipe2.ra
19、ndomgenerateposition(); 3.3.5分數(shù)統(tǒng)計模塊設(shè)計 當(dāng)小鳥通過管道后,分數(shù)便會加1,所以我們需要在管道中間設(shè)置一個觸發(fā)器,并使用代碼控制小鳥在碰到觸發(fā)器后分數(shù)能加1,同時顯示分數(shù),程序如下:voidontriggerexit(colliderother) if(other.tag=player) getcomponent().play(); gamemanager._intance.score+;/分數(shù)voidongui() guilayout.label(score:+gamemanager._intance.score); 游戲結(jié)束時,將顯示本輪分數(shù)和歷史最高分,代
20、碼如下:if(gamestate=gamemanager.gamestate_end) gamemenu._intance.gameobject.setactive(true); gamemenu._intance.updatescore(score); 3.3.6游戲結(jié)束模塊設(shè)計當(dāng)小鳥碰撞到管道或者地面時,游戲便會結(jié)束,此時顯示游戲結(jié)束畫面,同時顯示本輪分數(shù)和歷史最高分,并根據(jù)分數(shù)來顯示所得獎牌種類,同時有重新開始按鈕,點擊即可重新開始游戲,此為無限循環(huán)過程。代碼如下:voidawake() _intance=this; this.gameobject.setactive(false);pu
21、blicvoidupdatescore(floatnowscore) floathighscore=playerprefs.getfloat(score,0); if (nowscorehighscore)highscore=nowscore; inta; a=int.parse(nowscore.tostring(); if (a0&a10&a30|a=30) modelmenu3._intance5.gameobject.setactive(true); playerprefs.setfloat(score,highscore); this.nowscore.text=nowscore+;
22、 this.highscore.text=highscore+; if(input.getmousebuttondown(0)&gamemanager._intance.gamestate=gamemanager.gamestate_end) /重新開始游戲rectrect=starttexture.getscreenrect();vector3mousepos=input.mouseposition;if(mousepos.xrect.x& mousepos.xrect.y& mousepos.y2.3f) y=2.3f;if(yrect.x& mousepos.xrect.y& mouse
23、pos.y(rect.y+rect.height) gamestate=gamestate_playing; bird.sendmessage(getlife); 4 運行與測試1.我們運行游戲,進入游戲界面。一開始出現(xiàn)一個靜止不動的畫面,我們需要單擊“get ready!”來開始游戲,游戲開始界面如圖4-1所示: 圖4-1 游戲開始界面2.當(dāng)開始游戲后,我們需要間歇性點擊鼠標(biāo)來控制小鳥向上飛行,每次點擊只會讓小鳥獲得一次速度,接著就會在重力的作用下向下落,如果接觸到地面或者觸碰到管道,游戲就會結(jié)束。經(jīng)過測試,我們可以開始游戲并能控制小鳥進行飛行,游戲進行界面如圖4-2所示: 圖4-2 游戲進行界面3.當(dāng)我們觸碰到管道時,我們便失去對小鳥的控制,彈出游戲結(jié)束菜單,我們可以在菜單中看到自己此輪的分數(shù)、歷史最高分和所得獎牌種類,并選擇是否繼續(xù)游戲。經(jīng)過測試,當(dāng)小鳥觸碰到管道時,游戲結(jié)束,并彈出菜單,當(dāng)?shù)梅衷?9之間,游戲結(jié)束界面如圖4-3所示: 圖4-3 得分在010之間的結(jié)束界面當(dāng)?shù)梅衷?029之間,游戲結(jié)束界面如圖4-4所示: 圖4-4 得分1029之間的結(jié)束界面當(dāng)?shù)梅衷?0以上,游戲結(jié)束界面如圖4-5所示: 圖4-5 得分在30以
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 25320.4-2024電力系統(tǒng)管理及其信息交換數(shù)據(jù)和通信安全第4部分:包含MMS的協(xié)議集及其附件
- GB/T 45159.3-2024機械振動與沖擊黏彈性材料動態(tài)力學(xué)性能的表征第3部分:懸臂剪切梁法
- GB/T 45205-2024經(jīng)營者公平競爭合規(guī)管理規(guī)范
- Lactofen-生命科學(xué)試劑-MCE-2687
- Dityrosine-dihydrochloride-Bityrosine-dihydrochloride-生命科學(xué)試劑-MCE-2022
- 2025年度酒店安全管理責(zé)任免除協(xié)議書模板
- 二零二五年度房地產(chǎn)項目財務(wù)風(fēng)險評估顧問協(xié)議
- 二零二五年度特色茶餐廳員工勞動保障合同
- 二零二五年度荒山承包與植被種植一體化合同
- 施工現(xiàn)場施工圖紙會審制度
- 國外文化消費研究述評
- 部編版語文四年級下冊第一單元 迷人的鄉(xiāng)村風(fēng)景 大單元整體教學(xué)設(shè)計
- 湖南省長郡中學(xué)2023-2024學(xué)年高二下學(xué)期寒假檢測(開學(xué)考試)物理 含解析
- 五年級行程問題應(yīng)用題100道
- 血透病人體重健康宣教
- 脾破裂護理查房
- 人教版高中物理必修一全套課件【精品】
- 動物檢疫技術(shù)-臨診檢疫技術(shù)(動物防疫與檢疫技術(shù))
- 《華夏幸福房地產(chǎn)公司人才流失現(xiàn)狀、原因及應(yīng)對策略》開題報告(文獻綜述)3400字
- 文化墻、墻體彩繪施工方案
- 小型混凝土攪拌機-畢業(yè)設(shè)計
評論
0/150
提交評論