所屬欄目:電子技術論文 發布日期:2014-08-20 16:20 熱度:
對于獨立開發者和工作室,Unity做為大眾化開發系統,掃除了創造獨特游戲的時間和成本上的障礙。使用Unity可以在創建在任意平臺上(Web Player,PC,MAC,Linux,iOS,Android等)吸引和愉悅玩家的游戲。
摘 要:Unity是一個用于創建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的綜合型創作工具。Unity是一個游戲開發生態系統:強大的渲染引擎,完全集成一整套直觀工具和快速工作流程,可以創建互動式3D、2D內容;文章以一款翻轉匹配記憶游戲為例,從游戲的策劃構思設計和程序具體實現等進行介紹。游戲開發人員可以基于此文章,利用Unity開發多平臺的游戲。
關鍵詞:搜論文知識網,Unity,C#,用戶圖形界面,翻轉匹配記憶游戲
Unity的游戲腳本為基于Mono的Mono腳本,一個基于.NET Framework的開源語言,因此程序員可用C#,JavaScript等加以編寫。C#是微軟推出的一種面向對象的高級編程語言,具有適合快速上手開發的優勢。在介紹游戲實現也用C#代碼進行補充說明。翻轉匹配記憶類型游戲是一種考驗記憶力的游戲,這種游戲不僅適合小孩,也可以鍛煉成人的記憶力。本人以機器人修復游戲為例介紹如果在Unity引擎和C#語言的幫助下,開發用Web Player發布的網絡游戲。
1 游戲設計
1.1 玩法介紹
玩家在背面向上(未知內容)的網格卡片里,通過翻開查看的方式尋找匹配的兩張卡片,并且必須同時找出來。即玩家第一次翻轉A卡片,第二次必須翻轉與A卡片匹配的B卡片,如果翻轉的是C卡片(不與A卡片匹配),則兩張卡片再次翻轉回去,呈現背面向上(未知內容)的形式。用機器人修復游戲說明,玩家修復機器人的意思是:玩家第一次翻開的是一種類型機器人的部分身體,下一次必須翻開的是這種類型機器人與之配對的另一部分身體,以此用來修復機器人。當翻轉的卡片為配對卡片時,兩張卡片從游戲區域移除,當玩家移除掉所有卡片后,游戲勝利。玩家通過不停的翻轉卡片,在腦海里記憶卡片位置,從而快速找出配對卡片。
1.2 界面設計
1.2.1 游戲標題
在標題里需要有游戲名字,游戲基本背景說明,開始按鈕。在這個標題里需要用圖片的藝術形式來展現整體游戲風格,以此來吸引玩家。
1.2.2 游戲區界面
游戲區主要需要確定卡片的數量,考慮到以后的擴展設計(卡片數量能方便的調整),所以需要用動態加載卡片的方式進行加載。除此之外,因為游戲標題和游戲區界面是兩個不同的場景顯示,需要有雙向的通道,在標題里有“開始按鈕”做為通向游戲區的通道,在游戲區里需要有返回標題的按鈕作為通道。
1.3 游戲關鍵判斷邏輯
游戲的關鍵是消去配對的卡片。必須設定不讓玩家翻轉超過兩張卡片,當玩家翻轉第二張卡片后,進入判斷流程:如果卡片相匹配,則消去兩張卡片,如果不匹配,則翻轉回未知狀態。之后,繼續翻轉流程。
1.4 游戲性的探索
1.4.1 游戲聲音運用
當卡片翻轉成功后,需要有提示音反饋給玩家,以此來提示配對成功,增加游戲的體驗。同時游戲進行時,增加了背景音樂來增強游戲性。
1.4.2 游戲時間限制
為了增加游戲緊張氣氛和給予玩家一定的刺激度,可以增加限定時間的設置,規定玩家必須在限定時間里完成全部配對,當增加時間限定后,可以充分起到鍛煉記憶力的目的。游戲里增加一個逐漸減少的時間條用以標識時間的流逝。
1.4.3 難度設置
為了讓游戲適合不同能力的玩家,引入難度機制。難度機制可以讓初級玩家和高級玩家體驗到游戲的樂趣。
2 游戲主要功能實現及運行效果
2.1 卡片類實現
為了實現游戲邏輯,定義了Card類。isFaceUp表明卡片是否為翻開狀態,游戲邏輯檢測到這個狀態時,會把卡片顯示為翻開的狀態。 isMatched表明卡片是否已經匹配成功,游戲邏輯檢測到此狀態時,在卡片位置顯示一塊白色區域,并且不能再被點擊,表明卡片已被移走。img變量記錄Assets里的資源文件的名字,用來指明顯示圖片。
設置相同的id變量在兩張匹配的卡片里,為了匹配邏輯使用。
class Card:System.Object
{public bool isFaceUp=false;//檢查是否為翻開狀態
public bool isMatched=false;//檢查是否匹配成功
public string img;//定義卡片顯示的圖片
public int id;//唯一標示卡片,為匹配卡片時使用}
2.2 隨機性放置卡片
游戲一般在每次運行時,卡片區的卡片會有不同的順序顯示,需要實現隨機功能來實現。在BuildDeck()函數里把需要顯示的卡片數加載到Deck(卡片組)里,之后用Random.Range實現按照隨機的順序從Deck選出卡片。
BuildDeck();
for(int i=0;i for(int j=0;j int someNum= Random.Range(0,aCards.Count);
aGrid[i,j]=aCards[someNum];aCards.RemoveAt(someNum);}}
2.3 用戶圖形界面
用Unity自帶GUI(用戶圖形界面)動態生成多個按鈕形成卡片,行數(rows)和列數(cols)需要提前設定。代碼位于OnGUI函數(程序每運行一幀會執行)中: for(int i=0;i for(int j=0;j Texture t= Resources.Load(strShow) as Texture;
if(GUILayout.Button(t,GUILayout.Width(cardW)))
{//按鈕按下后處理邏輯}}}
2.4 游戲關鍵判斷邏輯
游戲關鍵邏輯是限制每次只能點擊2張不同的卡片,之后需要進行判斷,用一個容器來獲得這2張卡片,當下次再需要加入時,進行判斷,拒絕加入。
//判斷如果是選擇的同一張圖.不加入aCardsFlipped.
If (aCardsFlipped.IndexOf(each)<0){
aCardsFlipped.Add(each);}
if (aCardsFlipped.Count==2){
//如果有2個對象加入.不能再按鍵.
playerCanClick=false;}
2.5 選擇Web Play發布
當游戲調試通過后,在File菜單里選擇Build Setting進行設定,選擇Web Player發布,當Unity圖標在Web Player右側時代表選中。游戲運行效果截圖如下:
圖1 Web Player發布
圖2 游戲運行畫面
3 結束語
該機器人修復游戲可以在任何安裝Unity web player插件的網絡瀏覽器里運行,因此具有跨平臺的先天優勢。除能實現基本的翻轉游戲功能以外,還能實現限時,難度設置,聲音提示等擴展功能。經過實驗測試,界面美觀,結果正確,各項功能達到游戲要求。該實現方法可以對其他基于Unity開發的Web游戲起到拋磚引玉的作用。作者已經發布游戲如下:讀者可以進行參考。
http://www.kongregate.com/games/Moomlight/training-game
參考文獻:
[1][美]ANDRE LAMOTHE.Windows游戲編程大師技巧[M].北京:中國電力出版社,2001.
[2][美]Ryan Henson Creighton.Unity 3D Game Development by Example Beginner's Guide[M].Packt Publishing Limited,2011.
[3][美]Will Goldstome.Unity 3.x游戲開發經典教程[M].北京:科學出版社,2013.
文章標題:搜論文知識網論文發表基于Unity的Web游戲設計與實現
轉載請注明來自:http://www.56st48f.cn/fblw/dianxin/dianzijishu/22432.html
攝影藝術領域AHCI期刊推薦《Phot...關注:107
Nature旗下多學科子刊Nature Com...關注:152
中小學教師值得了解,這些教育學...關注:47
2025年寫管理學論文可以用的19個...關注:192
測繪領域科技核心期刊選擇 輕松拿...關注:64
及時開論文檢索證明很重要關注:52
中國水產科學期刊是核心期刊嗎關注:54
國際出書需要了解的問題解答關注:58
合著出書能否評職稱?關注:48
電信學有哪些可投稿的SCI期刊,值...關注:66
通信工程行業論文選題關注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關注:121
評職稱發論文好還是出書好關注:68
復印報刊資料重要轉載來源期刊(...關注:51
英文期刊審稿常見的論文狀態及其...關注:69
電子信息論文范文
智能科學技術論文 廣播電視論文 光電技術論文 計算機信息管理論文 計算機網絡論文 計算機應用論文 通信論文 信息安全論文 微電子應用論文 電子技術論文 生物醫學工程論文 軟件開發論文
SCI期刊分析
copyright © www.56st48f.cn, All Rights Reserved
搜論文知識網 冀ICP備15021333號-3