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在线无码浏览| 中文字幕精品一区二区三区视频 | 欧美亚洲激情| 国产精品女在线观看| 国产综合精品日本亚洲777| 亚洲国产AV无码综合原创| 久久久久久久久久国产精品| 婷婷开心中文字幕| 日本不卡视频在线| 四虎永久在线视频| 免费不卡视频| 欧美成一级| 超薄丝袜足j国产在线视频| 欧美另类图片视频无弹跳第一页 | 黄色三级毛片网站| 深夜福利视频一区二区| 全部毛片免费看| 日韩麻豆小视频| 欧洲在线免费视频| 亚洲欧洲日本在线| 国产成年女人特黄特色毛片免 | 日韩不卡免费视频| 欧美激情综合一区二区| 91精品国产一区| 蜜桃臀无码内射一区二区三区| 四虎精品免费久久| 国产精品尹人在线观看| 2021亚洲精品不卡a| 女人18毛片一级毛片在线| 国产熟女一级毛片| 97国产精品视频自在拍| 国产精品第一区| 欧美性猛交xxxx乱大交极品| 国产成人AV男人的天堂| 亚洲IV视频免费在线光看| 熟妇人妻无乱码中文字幕真矢织江 | 欧美日本在线一区二区三区| 一区二区三区高清视频国产女人| 99国产精品免费观看视频| www.亚洲一区| 国产免费精彩视频| 任我操在线视频| 国产91九色在线播放| 欧美色视频网站| 亚洲六月丁香六月婷婷蜜芽| 亚洲Va中文字幕久久一区| 操操操综合网| 日韩视频精品在线| 日韩东京热无码人妻| 中文字幕免费在线视频| 中文成人无码国产亚洲| 国产老女人精品免费视频| 亚洲av无码久久无遮挡| 国产欧美视频综合二区| 一级毛片免费观看不卡视频| 手机精品视频在线观看免费| 一级毛片在线免费看| 国产成人三级| 国模沟沟一区二区三区| 99成人在线观看| 久久精品这里只有精99品| 国产亚卅精品无码| 国产精品专区第一页在线观看| 亚洲第一成年网| 亚洲电影天堂在线国语对白| 免费看一级毛片波多结衣| 日韩a级毛片| 国产精品亚洲五月天高清| av在线手机播放| 91精品免费久久久| 国产成人AV男人的天堂| 精品视频免费在线| 一级毛片免费不卡在线视频| 色吊丝av中文字幕| 日韩欧美国产三级| 久久青青草原亚洲av无码| 91网红精品在线观看| 成人亚洲国产| 午夜天堂视频| 中字无码精油按摩中出视频| 婷婷色狠狠干| 国产成人精品男人的天堂|