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