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

主站蜘蛛池模板: 久久免费看片| 亚洲人成网站在线观看播放不卡| 欧美激情一区二区三区成人| 国产精女同一区二区三区久| 国产美女精品人人做人人爽| 免费aa毛片| 青青热久麻豆精品视频在线观看| 国产免费久久精品99re不卡| 日韩午夜片| 无码视频国产精品一区二区| 亚洲狼网站狼狼鲁亚洲下载| 99久久人妻精品免费二区| 亚洲人成高清| igao国产精品| 亚洲一区二区成人| 五月丁香在线视频| 久久这里只有精品免费| 全午夜免费一级毛片| 亚洲乱码精品久久久久..| 欧日韩在线不卡视频| 免费99精品国产自在现线| 三上悠亚在线精品二区| 永久免费av网站可以直接看的| 日本爱爱精品一区二区| 欧美国产日韩另类| 日韩a级片视频| 内射人妻无码色AV天堂| 97色伦色在线综合视频| 欧美色视频在线| 天堂中文在线资源| 欧美在线伊人| 青青热久免费精品视频6| 国产精品专区第1页| 成年网址网站在线观看| 国产91视频免费| 91久久夜色精品国产网站| 国产精品尤物在线| 手机在线国产精品| 五月天婷婷网亚洲综合在线| 久久这里只有精品66| 国产精品美女在线| 日本道中文字幕久久一区| 亚洲91精品视频| 亚洲欧洲综合| 97人人模人人爽人人喊小说| 日韩欧美中文在线| 四虎免费视频网站| 麻豆精品久久久久久久99蜜桃| 成人蜜桃网| 亚洲午夜天堂| 国产黄在线观看| 18禁高潮出水呻吟娇喘蜜芽| 成人午夜精品一级毛片| 色综合久久久久8天国| 四虎在线高清无码| 亚洲精品动漫| 欧美色视频在线| 久久这里只精品热免费99| 久久夜色精品| 国产成年女人特黄特色大片免费| 国产视频久久久久| 亚洲国产精品无码AV| 国产一区二区三区夜色| 亚洲精品日产精品乱码不卡| 无码视频国产精品一区二区| 白浆免费视频国产精品视频| 青青久视频| 国产美女在线观看| 尤物特级无码毛片免费| 伊人久综合| a在线观看免费| 成年人国产网站| 国产自在自线午夜精品视频| 亚洲视频二| 成人一级免费视频| www亚洲精品| 中国国产高清免费AV片| 91麻豆精品国产高清在线| 国产精品精品视频| 亚洲aaa视频| 国产69囗曝护士吞精在线视频| 亚洲第一精品福利|