unity課程設(shè)計報告(劉卉和沈玉婷)_第1頁
unity課程設(shè)計報告(劉卉和沈玉婷)_第2頁
unity課程設(shè)計報告(劉卉和沈玉婷)_第3頁
unity課程設(shè)計報告(劉卉和沈玉婷)_第4頁
unity課程設(shè)計報告(劉卉和沈玉婷)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、江南大學(xué)數(shù)字媒體技術(shù)專業(yè)2012-2013年度第1學(xué)期課程:Unity3D課程設(shè)計題目:小球吃寶石班級:數(shù)媒0902學(xué)號:0305090205/0305090206姓 名:劉卉/沈玉婷日 期:2012.12i江南大學(xué)數(shù)字媒體技術(shù)專業(yè)2012-2013 年度第 1 學(xué)期1、 摘要網(wǎng)絡(luò)游戲是一種新型的IT 產(chǎn)業(yè)。我們研究主要內(nèi)容是網(wǎng)絡(luò)軟件設(shè)計方法,網(wǎng)絡(luò)游戲:英文名稱為 Online Game,又稱“在線游戲”,簡稱“網(wǎng)游”。指以互聯(lián)網(wǎng)為傳輸媒介,以游戲運營商服務(wù)器和用戶計算機為處理終端,以游戲客戶端軟件為信息交互窗口的旨在實現(xiàn)娛樂、 休閑、 交流和取得虛擬成就的具有可持續(xù)性的個體性多人在線游戲。本

2、報告主要講述了這個小游戲的設(shè)計思路及初步使用Unity3D軟件的感受和總結(jié)。設(shè)計過程中,首先建立自己想要的模型,然后在此基礎(chǔ)上進行需求迭代,詳細設(shè)計時不斷地修正和完善,經(jīng)過測試階段反復(fù)調(diào)試和驗證,最終形成達到設(shè)計要求的小游戲。基于視頻教程“平衡球”的基礎(chǔ),構(gòu)建了一個益智游戲風(fēng)格的游戲,并有主角(小球)與關(guān)卡(一關(guān))、游戲邏輯(觸碰寶石)、游戲環(huán)境界面(環(huán)形軌道)等設(shè)計,使得玩家可以在場景軌道中進行小球吃寶石的冒險游戲。本游戲的控制很簡單,及用鍵盤的上下左右(或 WSAD)四個箭頭控制小球的上下左右四個方向,用戶根據(jù)自己的戰(zhàn)略方式選擇小球能吃到寶石的最佳捷徑,從而一步步吃掉所有寶石。分工:劉卉場

3、景的構(gòu)建和小球、寶石等道具的設(shè)計;沈玉婷游戲內(nèi)容的構(gòu)思設(shè)計和程序代碼的編寫。關(guān)鍵詞:網(wǎng)絡(luò)游戲、小球吃寶石、瀏覽器形式。2、 概述網(wǎng)絡(luò)游戲程序設(shè)計這一課程以大作業(yè)形式進行考核,能更好地鍛煉學(xué)生綜合運用本課程所授知識的能力。大作業(yè)主要內(nèi)容為設(shè)計完成面向某一主題內(nèi)容的游戲演示程序。自選游戲主題,并根據(jù)所選定的主題內(nèi)容設(shè)計一個典型的游戲場景及玩家邏輯,其中包含主角與關(guān)卡,游戲邏輯,游戲環(huán)境界面與交互過程等的設(shè)計;開發(fā)完成與設(shè)計相符的游戲Demo。要求使用Unity3D 游戲開發(fā)軟件實現(xiàn)上述游戲Demo。3、 具體要求1、 每人單獨完成,特殊可由2 人合作完成。2、 游戲主題自擬。3、 根據(jù)所設(shè)游戲主題

4、、場景及玩家邏輯,實現(xiàn)完成相應(yīng)的游戲Demo,并撰寫設(shè)計開發(fā)報告。4、 網(wǎng)絡(luò)游戲介紹網(wǎng)絡(luò)游戲是一種新型的IT 產(chǎn)業(yè)。我們研究主要內(nèi)容是網(wǎng)絡(luò)軟件設(shè)計方法,網(wǎng)絡(luò)游戲:英文名稱為 Online Game,又稱“在線游戲”,簡稱“網(wǎng)游”。指以互聯(lián)網(wǎng)為傳輸媒介,以游戲運營商服務(wù)器和用戶計算機為處理終端,以游戲客戶端軟件為信息交互窗口的旨在實現(xiàn)娛樂、 休閑、 交流和取得虛擬成就的具有可持續(xù)性的個體性多人在線游戲。網(wǎng)絡(luò)游戲目前的使用形式可以分為以下二種:(1) 瀏覽器形式基于瀏覽器的游戲,也就是我們通常說到的網(wǎng)頁游戲,又稱為WEBGAM E它不用下載客戶端,任何地方任何時間任何一臺能上網(wǎng)的電腦快樂的游戲,尤

5、其適合上班族,其類型及題材也非常豐富。(2) 客戶端形式這一種類型是由公司所架設(shè)的服務(wù)器來提供游戲,而玩家們則是由公司所提供的客戶端來連上公司服務(wù)器以進行游戲,而現(xiàn)在稱之為網(wǎng)絡(luò)游戲的大都屬于此類型。此類游戲的特征是大多數(shù)玩家都會有一個專屬于自己的角色( 虛擬身份 ) , 而一切角色資料以及游戲資訊均記錄在服務(wù)端。就目前網(wǎng)絡(luò)游戲主要的游戲模式而言,主要有以下幾種:動作游戲、冒險游戲、益智游戲、卡片游戲、戰(zhàn)略游戲等等。本課程設(shè)計所設(shè)計的游戲類型是小球吃寶石游戲,屬于益智游戲的一種。5、 設(shè)計主題基于視頻教程“平衡球”的基礎(chǔ),構(gòu)建了一個益智游戲風(fēng)格的游戲,并有主角(小球)與關(guān)卡(一關(guān))、游戲邏輯(觸

6、碰寶石)、游戲環(huán)境界面(環(huán)形軌道)等設(shè)計,使得玩家可以在場景軌道中進行小球吃寶石的冒險游戲。6、 設(shè)計思路本游戲以幾個環(huán)環(huán)相扣的軌道作為小球運動的軌跡,在軌道上分別設(shè)計一些紅寶石,通過電腦上的上下左右箭頭(或WSAD分別控制小球的運動方向(上下左右),稍有偏差小球就會離開平面,游戲結(jié)束;相反,如果小球運動位置沒有偏離所設(shè)計軌道平面而且碰觸到紅寶石,即算初步成功,當(dāng)小球全部吃掉所設(shè)計的紅寶石,游戲勝利。5江南大學(xué)數(shù)字媒體技術(shù)專業(yè)2012-2013年度第1學(xué)期本報告主要講述了這個小游戲的設(shè)計思路及初步使用Unity3D軟件的感受和總結(jié)。設(shè)計過程中,首先建立自己想要的模型,然后在此基 礎(chǔ)上進行需求迭

7、代,詳細設(shè)計時不斷地修正和完善,經(jīng)過測試階段反 復(fù)調(diào)試和驗證,最終形成達到設(shè)計要求的小游戲。分工:劉卉一一場景的構(gòu)建和小球、寶石等道具的設(shè)計;沈玉婷一一 游戲內(nèi)容的構(gòu)思設(shè)計和程序代碼的編寫。七、具體構(gòu)建步驟1、天空盒子添加2、用BSP筆刷建造場景的基本結(jié)構(gòu)。73、為場景貼圖。貼圖時,根據(jù)道具的風(fēng)格,選擇泥土或磚塊的BSP貼圖,每次貼圖選擇一個平面的一個面,復(fù)制粘貼直至完全貼完。4、放置靜態(tài)模型和道具。本場景設(shè)定為環(huán)形軌道上小球的運 動,選用小球和寶石做道具。5、場景燈光。添加相應(yīng)的點光源,查看效果。,史,7IV6、攝像機。調(diào)整攝像機到合適的位置八、程序腳本Scripts商 Garrie*erT

8、ricier茵 M irileCmet-aB M«rblCQntrolB I'larbleGdmeMandger1、游戲結(jié)束觸發(fā)器程序(GameoverTrigger):using UnityEngine;using System.Collections;public class GameoverTrigger : MonoBehaviour void OnTriggerEnter() MarbleGameManager.SP.SetGameOver();2、 小球的控制程序(MarbleControl):using UnityEngine;using System.Coll

9、ections;public class MarbleControl : MonoBehaviour public float movementSpeed = 6.0f;void Update () Vector3 movement = (Input.GetAxis("Horizontal") * -Vector3.left * movementSpeed) + (Input.GetAxis("Vertical") * Vector3.forward *movementSpeed);rigidbody.AddForce(movement, ForceMo

10、de.Force);void OnTriggerEnter (Collider other ) if (other.tag = "Pickup") MarbleGameManager.SP.FoundGem();Destroy(other.gameObject); else /Other collider. See other.tag and 江南大學(xué)數(shù)字媒體技術(shù)專業(yè)2012-2013 年度第 1 學(xué)期3、 小球游戲運作情形設(shè)計程序(MarbleGameManager):using UnityEngine;using System.Collections

11、;public enum MarbleGameState playing, won,lost ;public class MarbleGameManager : MonoBehaviour public static MarbleGameManager SP;private int totalGems;private int foundGems;private MarbleGameState gameState;void Awake() SP = this;foundGems = 0;gameState = MarbleGameState.playing;totalGems = GameObj

12、ect.FindGameObjectsWithTag("Pickup").Length;Time.timeScale = 1.0f;void OnGUI () GUILayout.Label(" Found gems: "+foundGems+"/"+totalGems );if (gameState = MarbleGameState.lost) GUILayout.Label("You Lost!");if(GUILayout.Button("Try again") )Application

13、.LoadLevel(Application.loadedLevel);else if (gameState = MarbleGameState.won)GUILayout.Label("You won!");if(GUILayout.Button("Play again") )Application.LoadLevel(Application.loadedLevel);public void FoundGem()foundGems+;if (foundGems >= totalGems) WonGame();public void WonGame

14、()Time.timeScale = 0.0f; /Pause game gameState = MarbleGameState.won;public void SetGameOver() Time.timeScale = 0.0f; /Pause gamegameState = MarbleGameState.lost; 4、 跟蹤小球球的攝像機設(shè)置(MarbleCamera) :using UnityEngine;using System.Collections;public class MarbleCamera : MonoBehaviour public Transform targe

15、t;public float relativeHeigth = 10.0f;public float zDistance = 5.0f;public float dampSpeed = 2;void Update () Vector3 newPos = target.position + new Vector3(0, relativeHeigth, -zDistance);newPos,transform.position= Vector3.Lerp(transform.position,Time.deltaTime*dampSpeed);9江南大學(xué)數(shù)字媒體技術(shù)專業(yè)2012-2013年度第1學(xué)

16、期八、關(guān)于服務(wù)器及網(wǎng)絡(luò)模塊的設(shè)計及實現(xiàn)網(wǎng)絡(luò)模塊的設(shè)計主要為了實現(xiàn)網(wǎng)絡(luò)版的服務(wù)端與客戶端之間的連接以及它們之間數(shù)據(jù)的傳送。圖展示了網(wǎng)絡(luò)模塊的結(jié)構(gòu)圖,網(wǎng)絡(luò)模 塊主要由客戶機服務(wù)器兩部分組成。在使用TCP協(xié)議時,一般服務(wù)端進程先使用 socket調(diào)用得到一 個描述符,然后使用bind調(diào)用將一個名字 與socket描述符連接起來, 對于Internet域就是將Internet地址聯(lián)編到socket。之后,服務(wù)端使用 listen調(diào)用指出等待服務(wù)請 求隊列的長度。然后就可以使用accept調(diào)用等待客戶端發(fā)起連接,一般是阻塞等待連接,一旦有客戶端發(fā)出 連接,accept返回客戶的地址信息,并返回一個新的s

17、ocket描述符,該描述符與原先的socket有相同的特性,這時服務(wù)端就可以使用這個 新的socket進行讀寫操作了。一般服務(wù)端可能在accept返回后創(chuàng)建一個新的進程進行與客戶的通信,父進程則再到accept調(diào)用處等待另 一個連接??蛻舳诉M程一般先使用socket調(diào)用得到一個socket描述符,然后使用connect向指定的服務(wù)器上的指定端口發(fā)起連接,一旦連接成功返回,就說明已經(jīng)建立了與服務(wù)器的連接,這時就可以通過socket描述符進行讀寫操作了。一旦創(chuàng)建Socket,在客戶端,你將可以通過Connect方法連接到指定 的服務(wù)器(你可以在 Connect方法前Bind端口,就是以指定的端口發(fā)

18、起連接,如 果不事先Bind 端口號的話,系統(tǒng)會默認在1024到 5000隨機綁定一個端口號),并通過 Send方法向遠程服務(wù)器發(fā)送數(shù)據(jù), 而后可以通過Receive從服務(wù)端接收數(shù)據(jù);而在服務(wù)器端,你需要使 用Bind方法綁定所指定的接口使Socket與一個本地終結(jié)點相聯(lián),并通過 Listen 方法偵 聽該接口上的請求,當(dāng)偵聽到用戶端的連接時,調(diào)用Accept完成連接的操作,創(chuàng)建新的Socket以處理傳入的連接請 求。使用完 Socket后,使用 Close方法關(guān)閉Socket。下圖展示了 網(wǎng)絡(luò)模塊流程圖,通過啟動服務(wù)器與客戶機,完成了它們之間的連接以及數(shù)據(jù)交換。九、游戲規(guī)則游戲規(guī)則模塊也是本

19、文的一個重點部分,需要實現(xiàn)小球吃寶石游戲 的基本規(guī)則,因此,首先要解決的問題是小球的運動方向,根據(jù)軌道 的方向制定小球的運動路線,然后要解決的問題是小球與紅寶石的接 觸過程,如果能保證小球不離開軌道而且又能吃到寶石, 則小球則達 到初步成功;如果能吃到所有寶石,則游戲勝利;相反,如果小球不 慎離開軌道,則宣布游戲失敗。十、 用戶控制本游戲的控制很簡單,及用鍵盤的上下左右(或 WSAD四個箭頭控制小球的上下左右四個方向,用戶根據(jù)自己的戰(zhàn)略方式選擇小球能吃到寶石的最佳捷徑,從而一步步吃掉所有寶石。十一、運行結(jié)果13江南大學(xué)數(shù)字媒體技術(shù)專業(yè)2012-2013 年度第 1 學(xué)期十二、心得體會(劉卉)在

20、學(xué)習(xí)并實踐的過程中,可能在腳本游戲的代碼編寫上還是出現(xiàn)最多問題的,有的時候就是照搬書本上的代碼,也會出錯,不僅僅是粗心,也是我對于代碼并不熟悉導(dǎo)致的,在一遍遍的修改中,我對代碼的編寫也更加熟練,相比較之前的生疏,現(xiàn)在算是比較得心應(yīng)手了。此外, 比較困擾我的就是攝像機位置的各方面調(diào)整,有的時候很難調(diào)整到想要的角度,最后只能將就,這點讓我很是糾結(jié)。對于這種情況,我試著各種方法達到理想效果,如果說我改變不了攝像機,那我只能改變我設(shè)置的場景、對象的位置了,雖然這樣的方法比較笨,而且可能會比較繁瑣,但是最終也幫助我實現(xiàn)了想要達到的效果。我覺得一些基礎(chǔ)快捷鍵要首先掌握,才能節(jié)省時間和精力。場景搭建初期要先構(gòu)思好場景的基本風(fēng)格,選擇靜態(tài)模型和裝備的時候就不會手忙腳亂了。場景和燈光基本完成時,要多構(gòu)建幾次,一邊檢驗一邊修改,這樣在后期才不會出現(xiàn)很多錯誤,以便同組合作的同學(xué)的后修工作能很19快上手。 在嘗試著做游戲的同時我還是學(xué)到了很多,不能說了解但也是熟悉了這個軟件。在與同學(xué)的合作中,我學(xué)著一點一點的去完善。兩人同組合作,大家積極

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論