亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一款基于Unity3D的移動(dòng)平臺(tái)游戲的設(shè)計(jì)

        2014-12-13 20:13:10董健
        軟件工程 2014年12期
        關(guān)鍵詞:碰撞檢測(cè)手機(jī)游戲

        董健

        摘? 要:隨著Android移動(dòng)操作系統(tǒng)的迅速普及,針對(duì)Android平臺(tái)游戲的移植開(kāi)發(fā)需求日益增多。用平面設(shè)計(jì)軟件構(gòu)建虛擬場(chǎng)景和運(yùn)動(dòng)單元,在Unity3D引擎中進(jìn)行模塊封裝、數(shù)據(jù)處理和交互控制,采用盒狀碰撞檢測(cè)機(jī)制及對(duì)象池的數(shù)據(jù)管理模式,實(shí)現(xiàn)了自動(dòng)射擊、關(guān)卡切換、視景特效及各種實(shí)體的動(dòng)態(tài)效果,完成了一款手機(jī)射擊類(lèi)游戲。最后,實(shí)現(xiàn)游戲向Android手機(jī)的移植,游戲基本功能完善,運(yùn)行流暢。

        關(guān)鍵詞:碰撞檢測(cè);Unity3D;手機(jī)游戲;Android

        中圖分類(lèi)號(hào):TP311.52?????????? 文獻(xiàn)標(biāo)識(shí)碼:A

        1?? 引言(Introduction)

        信息化時(shí)代,智能手機(jī)等移動(dòng)終端對(duì)人們來(lái)說(shuō)已經(jīng)不是一個(gè)陌生的詞,因其強(qiáng)大的功能而越來(lái)越受人們的青睞。智能手機(jī)不再像過(guò)去的老式機(jī)一樣只能簡(jiǎn)單地接聽(tīng)電話和收發(fā)短信了,而是更能迎合眾多用戶(hù)的需求,成為更多手機(jī)用戶(hù)在工作、學(xué)習(xí)之余的一部方便靈巧、便于攜帶的休閑娛樂(lè)的移動(dòng)設(shè)備[1]。智能手機(jī)擁有如此強(qiáng)大的功能,都是源于其完善的系統(tǒng)平臺(tái),其中Android系統(tǒng)平臺(tái)就是其一,它因其良好的開(kāi)放性而被很多手機(jī)廠商使用,在市場(chǎng)上占有相當(dāng)高的比率?;贏ndroid平臺(tái)的應(yīng)用中,游戲因其擁有強(qiáng)大的交互性、娛樂(lè)性以及能隨時(shí)隨地進(jìn)行游戲的便利性而被人們所喜愛(ài),讓開(kāi)發(fā)者看到了手機(jī)游戲在Android平臺(tái)上的巨大的發(fā)展空間。

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

        射擊類(lèi)游戲因其包含明顯的動(dòng)作游戲的特征,是動(dòng)作游戲中的一類(lèi),其操作簡(jiǎn)單、易懂,是一類(lèi)比較熱門(mén)的游戲。該應(yīng)用主要是通過(guò)Unity游戲引擎設(shè)計(jì)的一款適合于各階層人士的射擊類(lèi)游戲并移植到Android移動(dòng)平臺(tái)。對(duì)游戲功能進(jìn)行分析時(shí),應(yīng)集中注意要“做什么”而不是“怎么做”。通過(guò)對(duì)游戲的分析,根據(jù)游戲目標(biāo)功能的用例圖分析得到游戲的整體框架圖,如圖1所示。

        圖1 游戲框架結(jié)構(gòu)圖

        Fig.1 Game framework structure

        3?? 游戲功能模塊的實(shí)現(xiàn)(Realization of the game

        function module)

        3.1?? 游戲場(chǎng)景

        就射擊類(lèi)游戲來(lái)講,游戲的場(chǎng)景一般都會(huì)很大,因此無(wú)法在游戲的界面上完全顯示出來(lái),所以要給游戲的主界面背景添加一個(gè)UV動(dòng)畫(huà)。游戲中可以看到玩家控制的主角在不停地移動(dòng),而游戲背景總是在向下移動(dòng),讓玩家感覺(jué)整個(gè)畫(huà)面都在移動(dòng),呈現(xiàn)一種動(dòng)態(tài)的視覺(jué)效果。

        動(dòng)態(tài)背景創(chuàng)建的原理就是將背景用一張圖片進(jìn)行循環(huán)滾動(dòng),從而形成一個(gè)動(dòng)畫(huà)的過(guò)程[2]。為了實(shí)現(xiàn)背景的循環(huán)滾動(dòng),則需得選擇Loop,將其設(shè)為循環(huán)播放模式。

        3.2?? 主角管理的實(shí)現(xiàn)

        在游戲中,主角有循環(huán)移動(dòng)/具備生命值/可以發(fā)射子彈/尾部火焰效果等功能,在設(shè)計(jì)時(shí)建立一個(gè)Player類(lèi),讓它與主角關(guān)聯(lián),Player類(lèi)中提供了一個(gè)Update函數(shù),這個(gè)函數(shù)在程序運(yùn)行時(shí),每幀都會(huì)被調(diào)用,因此,在這個(gè)函數(shù)中添加主角移動(dòng)的部分代碼:

        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));//移動(dòng)

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

        在Player類(lèi)中定義一個(gè)enum(枚舉)狀態(tài),包含飛機(jī)的三種狀態(tài):Playing、Explosion、Invisible。再在子線程方法DestroyPlayer()中實(shí)現(xiàn)飛機(jī)被擊中或與敵機(jī)發(fā)生碰撞后,飛機(jī)退出游戲窗口底部,然后再?gòu)挠螒虼翱诘撞糠祷氐接螒蚪缑?,且閃爍一段時(shí)間才能被子彈擊中的功能。

        3.3?? 敵人管理的實(shí)現(xiàn)

        敵機(jī)的類(lèi)型主要分為三類(lèi),具體類(lèi)型如圖2所示。

        圖2 敵機(jī)類(lèi)型說(shuō)明圖

        Fig.2 Description of enemy plane type

        為了能夠不停的制造新的敵人,則需要?jiǎng)?chuàng)建敵人生成器。創(chuàng)建一個(gè)EnemySpawn腳本,為Update方法添加如下代碼:

        m_timer-=Time.deltaTime;

        if (m_timer<;=0){

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

        if (m_timer<;5)

        m_timer=5;?????? //實(shí)例化敵人的位置

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

        3.4?? 碰撞檢測(cè)的實(shí)現(xiàn)

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

        Destroy(this.gameObject);

        EnemyScript

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

        enemy.SetPositionAndSpeed();//設(shè)置敵人出現(xiàn)的位置

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

        game)

        在游戲制作完成后,為了檢查游戲是否完整、能否達(dá)到預(yù)期的效果,則需要對(duì)其進(jìn)行調(diào)試和運(yùn)行,以發(fā)現(xiàn)游戲中可能有的不足并解決這些問(wèn)題。進(jìn)入游戲,按空格鍵,發(fā)射子彈;按上、下、左、右鍵,上、下、左、右移動(dòng);飛機(jī)在飛行中若吃到星星,則會(huì)獲得一定的分?jǐn)?shù)。若飛機(jī)撞到敵機(jī)或被敵機(jī)子彈集中,生命值會(huì)減一,當(dāng)生命值減到零時(shí),游戲失敗,進(jìn)入失敗界面。

        經(jīng)過(guò)測(cè)試,游戲運(yùn)行效果符合預(yù)先設(shè)計(jì)的游戲總體效果,各個(gè)界面之間的切換也都正確。此外,還重點(diǎn)測(cè)試了游戲過(guò)程中其他功能的實(shí)現(xiàn),玩家控制的主角能正常移動(dòng)并發(fā)射子彈,在吃到星星后,也能獲得相應(yīng)的分?jǐn)?shù)。

        5?? 結(jié)論(Conclusion)

        游戲是以Unity游戲引擎為開(kāi)發(fā)平臺(tái),并最終實(shí)現(xiàn)向Android的移植。

        在游戲的設(shè)計(jì)與開(kāi)發(fā)的整個(gè)過(guò)程中,由于對(duì)Unity和Android機(jī)制研究的還未深入,遇到過(guò)很多問(wèn)題,有技術(shù)方面的,有關(guān)于游戲模型方面的,有界面設(shè)計(jì)方面的,還有程序運(yùn)行時(shí)出現(xiàn)的各種異常,移植過(guò)程中軟件無(wú)法打開(kāi)、運(yùn)行等問(wèn)題。但是通過(guò)仔細(xì)研究Unity引擎及Android平臺(tái)的開(kāi)發(fā)方法,均得到解決,也為以后的繼續(xù)開(kāi)發(fā)提供基礎(chǔ)。

        參考文獻(xiàn)(References)

        [1] 段海朋,關(guān)振華.3DS Max 2010完全學(xué)習(xí)手冊(cè)[M].北京:清華大

        學(xué)出版社,2010.

        [2] 林深華,等.基于Android平臺(tái)Unity3D游戲設(shè)計(jì)與實(shí)現(xiàn)[J].企業(yè)

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

        [3] 宋浩.基于虛擬現(xiàn)實(shí)過(guò)程中的碰撞檢測(cè)算法優(yōu)化的研究[J].科

        技向?qū)В?013(03):152.

        作者簡(jiǎn)介:

        董? ?。?980-),男,碩士,講師.研究領(lǐng)域:多媒體信息處理.endprint

        3.4?? 碰撞檢測(cè)的實(shí)現(xiàn)

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

        Destroy(this.gameObject);

        EnemyScript

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

        enemy.SetPositionAndSpeed();//設(shè)置敵人出現(xiàn)的位置

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

        game)

        在游戲制作完成后,為了檢查游戲是否完整、能否達(dá)到預(yù)期的效果,則需要對(duì)其進(jìn)行調(diào)試和運(yùn)行,以發(fā)現(xiàn)游戲中可能有的不足并解決這些問(wèn)題。進(jìn)入游戲,按空格鍵,發(fā)射子彈;按上、下、左、右鍵,上、下、左、右移動(dòng);飛機(jī)在飛行中若吃到星星,則會(huì)獲得一定的分?jǐn)?shù)。若飛機(jī)撞到敵機(jī)或被敵機(jī)子彈集中,生命值會(huì)減一,當(dāng)生命值減到零時(shí),游戲失敗,進(jìn)入失敗界面。

        經(jīng)過(guò)測(cè)試,游戲運(yùn)行效果符合預(yù)先設(shè)計(jì)的游戲總體效果,各個(gè)界面之間的切換也都正確。此外,還重點(diǎn)測(cè)試了游戲過(guò)程中其他功能的實(shí)現(xiàn),玩家控制的主角能正常移動(dòng)并發(fā)射子彈,在吃到星星后,也能獲得相應(yīng)的分?jǐn)?shù)。

        5?? 結(jié)論(Conclusion)

        游戲是以Unity游戲引擎為開(kāi)發(fā)平臺(tái),并最終實(shí)現(xiàn)向Android的移植。

        在游戲的設(shè)計(jì)與開(kāi)發(fā)的整個(gè)過(guò)程中,由于對(duì)Unity和Android機(jī)制研究的還未深入,遇到過(guò)很多問(wèn)題,有技術(shù)方面的,有關(guān)于游戲模型方面的,有界面設(shè)計(jì)方面的,還有程序運(yùn)行時(shí)出現(xiàn)的各種異常,移植過(guò)程中軟件無(wú)法打開(kāi)、運(yùn)行等問(wèn)題。但是通過(guò)仔細(xì)研究Unity引擎及Android平臺(tái)的開(kāi)發(fā)方法,均得到解決,也為以后的繼續(xù)開(kāi)發(fā)提供基礎(chǔ)。

        參考文獻(xiàn)(References)

        [1] 段海朋,關(guān)振華.3DS Max 2010完全學(xué)習(xí)手冊(cè)[M].北京:清華大

        學(xué)出版社,2010.

        [2] 林深華,等.基于Android平臺(tái)Unity3D游戲設(shè)計(jì)與實(shí)現(xiàn)[J].企業(yè)

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

        [3] 宋浩.基于虛擬現(xiàn)實(shí)過(guò)程中的碰撞檢測(cè)算法優(yōu)化的研究[J].科

        技向?qū)В?013(03):152.

        作者簡(jiǎn)介:

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

        3.4?? 碰撞檢測(cè)的實(shí)現(xiàn)

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

        Destroy(this.gameObject);

        EnemyScript

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

        enemy.SetPositionAndSpeed();//設(shè)置敵人出現(xiàn)的位置

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

        game)

        在游戲制作完成后,為了檢查游戲是否完整、能否達(dá)到預(yù)期的效果,則需要對(duì)其進(jìn)行調(diào)試和運(yùn)行,以發(fā)現(xiàn)游戲中可能有的不足并解決這些問(wèn)題。進(jìn)入游戲,按空格鍵,發(fā)射子彈;按上、下、左、右鍵,上、下、左、右移動(dòng);飛機(jī)在飛行中若吃到星星,則會(huì)獲得一定的分?jǐn)?shù)。若飛機(jī)撞到敵機(jī)或被敵機(jī)子彈集中,生命值會(huì)減一,當(dāng)生命值減到零時(shí),游戲失敗,進(jìn)入失敗界面。

        經(jīng)過(guò)測(cè)試,游戲運(yùn)行效果符合預(yù)先設(shè)計(jì)的游戲總體效果,各個(gè)界面之間的切換也都正確。此外,還重點(diǎn)測(cè)試了游戲過(guò)程中其他功能的實(shí)現(xiàn),玩家控制的主角能正常移動(dòng)并發(fā)射子彈,在吃到星星后,也能獲得相應(yīng)的分?jǐn)?shù)。

        5?? 結(jié)論(Conclusion)

        游戲是以Unity游戲引擎為開(kāi)發(fā)平臺(tái),并最終實(shí)現(xiàn)向Android的移植。

        在游戲的設(shè)計(jì)與開(kāi)發(fā)的整個(gè)過(guò)程中,由于對(duì)Unity和Android機(jī)制研究的還未深入,遇到過(guò)很多問(wèn)題,有技術(shù)方面的,有關(guān)于游戲模型方面的,有界面設(shè)計(jì)方面的,還有程序運(yùn)行時(shí)出現(xiàn)的各種異常,移植過(guò)程中軟件無(wú)法打開(kāi)、運(yùn)行等問(wèn)題。但是通過(guò)仔細(xì)研究Unity引擎及Android平臺(tái)的開(kāi)發(fā)方法,均得到解決,也為以后的繼續(xù)開(kāi)發(fā)提供基礎(chǔ)。

        參考文獻(xiàn)(References)

        [1] 段海朋,關(guān)振華.3DS Max 2010完全學(xué)習(xí)手冊(cè)[M].北京:清華大

        學(xué)出版社,2010.

        [2] 林深華,等.基于Android平臺(tái)Unity3D游戲設(shè)計(jì)與實(shí)現(xiàn)[J].企業(yè)

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

        [3] 宋浩.基于虛擬現(xiàn)實(shí)過(guò)程中的碰撞檢測(cè)算法優(yōu)化的研究[J].科

        技向?qū)В?013(03):152.

        作者簡(jiǎn)介:

        董? ?。?980-),男,碩士,講師.研究領(lǐng)域:多媒體信息處理.endprint

        猜你喜歡
        碰撞檢測(cè)手機(jī)游戲
        全新預(yù)測(cè)碰撞檢測(cè)系統(tǒng)
        基于BIM的鐵路信號(hào)室外設(shè)備布置與碰撞檢測(cè)方法
        讓手機(jī)游戲成為傳統(tǒng)文化的傳播新渠道
        Unity3D中碰撞檢測(cè)問(wèn)題的研究
        手機(jī)游戲?qū)Υ髮W(xué)生的負(fù)面影響及對(duì)策分析
        BIM技術(shù)下的某辦公樓項(xiàng)目管線碰撞檢測(cè)
        在干什么
        淺談手機(jī)游戲業(yè)務(wù)發(fā)展策略
        日韩av中文字幕少妇精品| 性大毛片视频| 成人网站免费大全日韩国产| 久久久久久久妓女精品免费影院 | 亚洲精品98中文字幕| 人与人性恔配视频免费| 麻豆成人精品国产免费| 日本亚洲欧美在线观看| 国产在线观看网址不卡一区| 国产亚洲3p一区二区| 日韩人妻不卡一区二区三区| 亚洲国产成人片在线观看无码| 欧美高大丰满freesex| 日本一区二区在线资源| 少妇被啪出水在线视频| 亚洲av男人电影天堂热app| 国产乱xxⅹxx国语对白| 日韩欧美第一区二区三区| 国产大全一区二区三区| 亚洲av成人av三上悠亚| 欧美狠狠入鲁的视频777色| 欧美粗大无套gay| 国产极品美女到高潮视频| av在线一区二区精品| 久久亚洲精品国产亚洲老地址| 亚洲av无码潮喷在线观看| 亚洲一区二区自拍偷拍| 国产精品自拍视频免费看| 午夜视频在线观看一区二区小| 亚洲色爱免费观看视频| 麻豆国产巨作AV剧情老师| 亚洲综合精品一区二区三区| 日韩中文字幕在线观看一区| 国色天香精品一卡2卡3卡4| 亚洲中文字幕无码中字| 免费啪啪av人妻一区二区 | 在线精品无码一区二区三区| 日韩一区二区三区天堂| 中文字幕一区二区三区的| 日韩视频中文字幕精品偷拍 | 人人爽人人爽人人片av|