999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一款基于Unity3D的移動平臺游戲的設計

2014-12-13 20:13:10董健
軟件工程 2014年12期

董健

摘? 要:隨著Android移動操作系統的迅速普及,針對Android平臺游戲的移植開發需求日益增多。用平面設計軟件構建虛擬場景和運動單元,在Unity3D引擎中進行模塊封裝、數據處理和交互控制,采用盒狀碰撞檢測機制及對象池的數據管理模式,實現了自動射擊、關卡切換、視景特效及各種實體的動態效果,完成了一款手機射擊類游戲。最后,實現游戲向Android手機的移植,游戲基本功能完善,運行流暢。

關鍵詞:碰撞檢測;Unity3D;手機游戲;Android

中圖分類號:TP311.52?????????? 文獻標識碼:A

1?? 引言(Introduction)

信息化時代,智能手機等移動終端對人們來說已經不是一個陌生的詞,因其強大的功能而越來越受人們的青睞。智能手機不再像過去的老式機一樣只能簡單地接聽電話和收發短信了,而是更能迎合眾多用戶的需求,成為更多手機用戶在工作、學習之余的一部方便靈巧、便于攜帶的休閑娛樂的移動設備[1]。智能手機擁有如此強大的功能,都是源于其完善的系統平臺,其中Android系統平臺就是其一,它因其良好的開放性而被很多手機廠商使用,在市場上占有相當高的比率。基于Android平臺的應用中,游戲因其擁有強大的交互性、娛樂性以及能隨時隨地進行游戲的便利性而被人們所喜愛,讓開發者看到了手機游戲在Android平臺上的巨大的發展空間。

2?? 游戲功能分析(The game features analysis)

射擊類游戲因其包含明顯的動作游戲的特征,是動作游戲中的一類,其操作簡單、易懂,是一類比較熱門的游戲。該應用主要是通過Unity游戲引擎設計的一款適合于各階層人士的射擊類游戲并移植到Android移動平臺。對游戲功能進行分析時,應集中注意要“做什么”而不是“怎么做”。通過對游戲的分析,根據游戲目標功能的用例圖分析得到游戲的整體框架圖,如圖1所示。

圖1 游戲框架結構圖

Fig.1 Game framework structure

3?? 游戲功能模塊的實現(Realization of the game

function module)

3.1?? 游戲場景

就射擊類游戲來講,游戲的場景一般都會很大,因此無法在游戲的界面上完全顯示出來,所以要給游戲的主界面背景添加一個UV動畫。游戲中可以看到玩家控制的主角在不停地移動,而游戲背景總是在向下移動,讓玩家感覺整個畫面都在移動,呈現一種動態的視覺效果。

動態背景創建的原理就是將背景用一張圖片進行循環滾動,從而形成一個動畫的過程[2]。為了實現背景的循環滾動,則需得選擇Loop,將其設為循環播放模式。

3.2?? 主角管理的實現

在游戲中,主角有循環移動/具備生命值/可以發射子彈/尾部火焰效果等功能,在設計時建立一個Player類,讓它與主角關聯,Player類中提供了一個Update函數,這個函數在程序運行時,每幀都會被調用,因此,在這個函數中添加主角移動的部分代碼:

if(Input.GetKey(KeyCode.UpArrow)){movev-=m_speed*Time.deltaTime;} //上移

if(Input.GetKey(KeyCode.DownArrow)){ movev+=m_speed*Time.deltaTime;}//下移

if(Input.GetKey(KeyCode.LeftArrow)){moveh+=m_speed*Time.deltaTime;}//左移

if(Input.GetKey(KeyCode.RightArrow)){moveh-=m_speed*Time.deltaTime;}//右移

this.m_transform.Translate(new Vector3(moveh,0,

movev));//移動

…………………………………………

在Player類中定義一個enum(枚舉)狀態,包含飛機的三種狀態:Playing、Explosion、Invisible。再在子線程方法DestroyPlayer()中實現飛機被擊中或與敵機發生碰撞后,飛機退出游戲窗口底部,然后再從游戲窗口底部返回到游戲界面,且閃爍一段時間才能被子彈擊中的功能。

3.3?? 敵人管理的實現

敵機的類型主要分為三類,具體類型如圖2所示。

圖2 敵機類型說明圖

Fig.2 Description of enemy plane type

為了能夠不停的制造新的敵人,則需要創建敵人生成器。創建一個EnemySpawn腳本,為Update方法添加如下代碼:

m_timer-=Time.deltaTime;

if (m_timer<;=0){

m_timer=Random.value*15.0f;?? //在5~15s之間隨機生成一個敵人

if (m_timer<;5)

m_timer=5;?????? //實例化敵人的位置

Instantiate (m_enemy,m_transform.position,Quaternion.identity); }endprint

3.4?? 碰撞檢測的實現

射擊游戲中,為了判斷前方是否有障礙物和子彈是否擊中對方,就需要對兩個物體進行碰撞檢測,然后根據檢驗的結果采取相應的方法進行處理。游戲中的碰撞檢測主要存在于主角與敵機、主角與敵機子彈、敵機與主角子彈之間。而物體要發生碰撞檢測,主動運行的對象就必須是剛體,因此,需要添加一個剛體組件。檢驗碰撞通常有兩種方法OnCollision-Enter和OnTriggerEnter。應用中采取的則是OnTriggerEnter方法[3]。檢測中需要使用如下方法設置敵人位置:

Destroy(this.gameObject);

EnemyScript

enemy=(EnemyScript)ontherObject.gameObject.GetComponent("EnemyScript");

enemy.SetPositionAndSpeed();//設置敵人出現的位置

4? 游戲的完成及測試(Completion and testing of the

game)

在游戲制作完成后,為了檢查游戲是否完整、能否達到預期的效果,則需要對其進行調試和運行,以發現游戲中可能有的不足并解決這些問題。進入游戲,按空格鍵,發射子彈;按上、下、左、右鍵,上、下、左、右移動;飛機在飛行中若吃到星星,則會獲得一定的分數。若飛機撞到敵機或被敵機子彈集中,生命值會減一,當生命值減到零時,游戲失敗,進入失敗界面。

經過測試,游戲運行效果符合預先設計的游戲總體效果,各個界面之間的切換也都正確。此外,還重點測試了游戲過程中其他功能的實現,玩家控制的主角能正常移動并發射子彈,在吃到星星后,也能獲得相應的分數。

5?? 結論(Conclusion)

游戲是以Unity游戲引擎為開發平臺,并最終實現向Android的移植。

在游戲的設計與開發的整個過程中,由于對Unity和Android機制研究的還未深入,遇到過很多問題,有技術方面的,有關于游戲模型方面的,有界面設計方面的,還有程序運行時出現的各種異常,移植過程中軟件無法打開、運行等問題。但是通過仔細研究Unity引擎及Android平臺的開發方法,均得到解決,也為以后的繼續開發提供基礎。

參考文獻(References)

[1] 段海朋,關振華.3DS Max 2010完全學習手冊[M].北京:清華大

學出版社,2010.

[2] 林深華,等.基于Android平臺Unity3D游戲設計與實現[J].企業

科技與發展,2013(10):40-42.

[3] 宋浩.基于虛擬現實過程中的碰撞檢測算法優化的研究[J].科

技向導,2013(03):152.

作者簡介:

董? 健(1980-),男,碩士,講師.研究領域:多媒體信息處理.endprint

3.4?? 碰撞檢測的實現

射擊游戲中,為了判斷前方是否有障礙物和子彈是否擊中對方,就需要對兩個物體進行碰撞檢測,然后根據檢驗的結果采取相應的方法進行處理。游戲中的碰撞檢測主要存在于主角與敵機、主角與敵機子彈、敵機與主角子彈之間。而物體要發生碰撞檢測,主動運行的對象就必須是剛體,因此,需要添加一個剛體組件。檢驗碰撞通常有兩種方法OnCollision-Enter和OnTriggerEnter。應用中采取的則是OnTriggerEnter方法[3]。檢測中需要使用如下方法設置敵人位置:

Destroy(this.gameObject);

EnemyScript

enemy=(EnemyScript)ontherObject.gameObject.GetComponent("EnemyScript");

enemy.SetPositionAndSpeed();//設置敵人出現的位置

4? 游戲的完成及測試(Completion and testing of the

game)

在游戲制作完成后,為了檢查游戲是否完整、能否達到預期的效果,則需要對其進行調試和運行,以發現游戲中可能有的不足并解決這些問題。進入游戲,按空格鍵,發射子彈;按上、下、左、右鍵,上、下、左、右移動;飛機在飛行中若吃到星星,則會獲得一定的分數。若飛機撞到敵機或被敵機子彈集中,生命值會減一,當生命值減到零時,游戲失敗,進入失敗界面。

經過測試,游戲運行效果符合預先設計的游戲總體效果,各個界面之間的切換也都正確。此外,還重點測試了游戲過程中其他功能的實現,玩家控制的主角能正常移動并發射子彈,在吃到星星后,也能獲得相應的分數。

5?? 結論(Conclusion)

游戲是以Unity游戲引擎為開發平臺,并最終實現向Android的移植。

在游戲的設計與開發的整個過程中,由于對Unity和Android機制研究的還未深入,遇到過很多問題,有技術方面的,有關于游戲模型方面的,有界面設計方面的,還有程序運行時出現的各種異常,移植過程中軟件無法打開、運行等問題。但是通過仔細研究Unity引擎及Android平臺的開發方法,均得到解決,也為以后的繼續開發提供基礎。

參考文獻(References)

[1] 段海朋,關振華.3DS Max 2010完全學習手冊[M].北京:清華大

學出版社,2010.

[2] 林深華,等.基于Android平臺Unity3D游戲設計與實現[J].企業

科技與發展,2013(10):40-42.

[3] 宋浩.基于虛擬現實過程中的碰撞檢測算法優化的研究[J].科

技向導,2013(03):152.

作者簡介:

董? 健(1980-),男,碩士,講師.研究領域:多媒體信息處理.endprint

3.4?? 碰撞檢測的實現

射擊游戲中,為了判斷前方是否有障礙物和子彈是否擊中對方,就需要對兩個物體進行碰撞檢測,然后根據檢驗的結果采取相應的方法進行處理。游戲中的碰撞檢測主要存在于主角與敵機、主角與敵機子彈、敵機與主角子彈之間。而物體要發生碰撞檢測,主動運行的對象就必須是剛體,因此,需要添加一個剛體組件。檢驗碰撞通常有兩種方法OnCollision-Enter和OnTriggerEnter。應用中采取的則是OnTriggerEnter方法[3]。檢測中需要使用如下方法設置敵人位置:

Destroy(this.gameObject);

EnemyScript

enemy=(EnemyScript)ontherObject.gameObject.GetComponent("EnemyScript");

enemy.SetPositionAndSpeed();//設置敵人出現的位置

4? 游戲的完成及測試(Completion and testing of the

game)

在游戲制作完成后,為了檢查游戲是否完整、能否達到預期的效果,則需要對其進行調試和運行,以發現游戲中可能有的不足并解決這些問題。進入游戲,按空格鍵,發射子彈;按上、下、左、右鍵,上、下、左、右移動;飛機在飛行中若吃到星星,則會獲得一定的分數。若飛機撞到敵機或被敵機子彈集中,生命值會減一,當生命值減到零時,游戲失敗,進入失敗界面。

經過測試,游戲運行效果符合預先設計的游戲總體效果,各個界面之間的切換也都正確。此外,還重點測試了游戲過程中其他功能的實現,玩家控制的主角能正常移動并發射子彈,在吃到星星后,也能獲得相應的分數。

5?? 結論(Conclusion)

游戲是以Unity游戲引擎為開發平臺,并最終實現向Android的移植。

在游戲的設計與開發的整個過程中,由于對Unity和Android機制研究的還未深入,遇到過很多問題,有技術方面的,有關于游戲模型方面的,有界面設計方面的,還有程序運行時出現的各種異常,移植過程中軟件無法打開、運行等問題。但是通過仔細研究Unity引擎及Android平臺的開發方法,均得到解決,也為以后的繼續開發提供基礎。

參考文獻(References)

[1] 段海朋,關振華.3DS Max 2010完全學習手冊[M].北京:清華大

學出版社,2010.

[2] 林深華,等.基于Android平臺Unity3D游戲設計與實現[J].企業

科技與發展,2013(10):40-42.

[3] 宋浩.基于虛擬現實過程中的碰撞檢測算法優化的研究[J].科

技向導,2013(03):152.

作者簡介:

董? 健(1980-),男,碩士,講師.研究領域:多媒體信息處理.endprint

主站蜘蛛池模板: 亚洲欧洲日产国码无码av喷潮| 亚洲综合第一区| 99精品国产电影| 青青青草国产| 亚洲成aⅴ人在线观看| 美女裸体18禁网站| 男人的天堂久久精品激情| 亚洲男人的天堂久久香蕉| 久热99这里只有精品视频6| 国产欧美日韩视频一区二区三区| 色偷偷一区二区三区| 青青极品在线| 久久久久人妻一区精品色奶水| 91久久国产综合精品女同我| 国产精品999在线| 欧美亚洲一区二区三区导航| 国产精品尤物铁牛tv| 国产又色又刺激高潮免费看| 无码丝袜人妻| 亚洲人成色在线观看| 精品无码国产自产野外拍在线| 国产最爽的乱婬视频国语对白| 国产精品亚洲精品爽爽| 亚洲精品国产成人7777| 欧美日韩国产在线人成app| 女人天堂av免费| 亚洲一区二区三区中文字幕5566| 天堂在线视频精品| 亚洲精品国偷自产在线91正片| 超清无码熟妇人妻AV在线绿巨人| 午夜三级在线| a亚洲视频| 青青草一区| 露脸国产精品自产在线播| 日韩a级片视频| 国模在线视频一区二区三区| 精品国产成人三级在线观看| 亚洲欧美另类视频| 狼友av永久网站免费观看| 999在线免费视频| 亚洲欧美综合另类图片小说区| 萌白酱国产一区二区| 欧美成人综合视频| 国产精品欧美亚洲韩国日本不卡| 一级毛片在线免费看| 国产 在线视频无码| 亚洲一区二区约美女探花| 欧美日韩国产精品综合| 日韩精品视频久久| 亚洲国产综合精品中文第一| 成人一区在线| 亚洲大尺度在线| 欧美国产精品不卡在线观看 | 色悠久久久久久久综合网伊人| 亚洲一区毛片| 日韩成人免费网站| 宅男噜噜噜66国产在线观看| 亚洲三级色| 亚洲中文字幕av无码区| 99re这里只有国产中文精品国产精品 | 中文字幕无码中文字幕有码在线| 欧美不卡视频一区发布| 中国黄色一级视频| 日韩大片免费观看视频播放| а∨天堂一区中文字幕| 免费看美女毛片| 在线观看亚洲人成网站| 99999久久久久久亚洲| 久久久久九九精品影院| 精品国产成人国产在线| 成人一级黄色毛片| 自拍偷拍欧美| 国产丝袜无码精品| 中文一区二区视频| 精品国产网| 毛片国产精品完整版| 日本欧美视频在线观看| 99这里只有精品免费视频| 国产成人精品一区二区| 美女无遮挡拍拍拍免费视频| 亚洲国产精品成人久久综合影院| 欧美午夜小视频|