国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于Unity的人機對戰(zhàn)游戲的設計與實現

2018-06-09 03:43蘇偉勵
東方教育 2018年13期
關鍵詞:安卓

蘇偉勵

摘要:隨著社會科技水平和經濟水平的迅速發(fā)展,游戲逐步成為人們享受生活娛樂的一種流行的方式,Unity3D作為一款虛擬3D開發(fā)的軟件正在逐步升溫,他以其跨平臺的優(yōu)勢,良好的界面環(huán)境,操作要求不高,強大的功能設計漸漸的被廣大虛擬現實的設計者們所使用。

本文主要是設計一款能夠在手機上操作的休閑類射擊游戲,功能模塊分為:敵機的生成與銷毀模塊,子彈的對象池,以及子彈與敵機的碰撞檢測模塊,還有最后的結束界面,用本地保存歷史最高的分數。

關鍵詞:Unity3D;射擊游戲;安卓

就目前的游戲市場而已,很多人對unity3d游戲偏愛有佳,從事unity3d游戲開發(fā)前景廣闊。在本次的畢業(yè)設計,用戶能夠在手機上通過自身的單手觸屏的操作,享受游戲帶來的快樂。而通過本次的射擊游戲的開發(fā),讓我對與大型游戲的制作流程有了一個更加深入的了解,并且提高的我邏輯思維能力,代碼能力,讓我受益匪淺。

一、游戲的模塊分析

新課程理念的核心在于充分發(fā)揮學生的思維能力,培養(yǎng)學生多元化的學習能力,進而實現國家人才培養(yǎng)的基本目標。新課程面對的一個重要問題就是如何提高課堂教學效益最大化,即初中化學教師應如何改善自身的教學方式,提高化學教學的有效性,促使初中化學教學能夠達到預想的教學效果,實現現代化人才培養(yǎng)的宏偉目標。

(一)游戲主線模塊

游戲中共有三種等級的敵機,小型敵機生命值和分值最低,移動速度最快,出現頻率最高,中型敵機生命值和分值略多于小型敵機,移動速度略低于小型敵機,出現頻率略高于小型敵機,大型敵機生命值和分值最高,移動速度最慢,屬于BOSS,當只有消滅數量的敵機,達到一定分數的時候才會出現。敵機生命值耗盡則爆炸,飛出邊界自動銷毀。而玩家擁有主武器和副武器,在得到子彈獎勵物品后,會在一定時間增強火力,玩家受到敵機碰撞會損失生命值,獎勵物品同樣在飛出邊界后,或者過段時間后會自動銷毀,敵機無法獲得獎勵物品,玩家每消滅一個敵機得到相應的分數,生命值耗盡則游戲結束如果和敵機發(fā)生碰撞或者與敵機的子彈發(fā)生碰撞,血量就會變少,當消滅一個敵機時,游戲右上方的分數會增加,敵機會有銷毀的動畫。由于本次采用是無盡深淵模式,就是一直刷怪,所以關數只有一關。同時,對于游戲的界面進行一些處理,要有進入游戲后的玩家角色界面,如血條,分數等,還需要結束游戲界面。

(二)游戲獎勵物品模塊

游戲中有多種獎勵物品,為子彈獎勵,通過一個腳本控制,Inspector屬性面板中給定,由生成器根據不同頻率周期控制生成,生成的地點也是隨機的,獎勵物品飛出邊界后自動銷毀,碰撞到玩家戰(zhàn)機,則由玩家戰(zhàn)機上面的腳本判斷獎勵類型,同時,獎勵物品消失。獎勵物品和敵機沒有碰撞檢測,當獎勵物品和敵機位置重疊,獎勵物品渲染層級在敵機上層,優(yōu)先顯示,不會被敵機遮擋

(三)敵機模塊

游戲中有三種敵機,小型、中型和大型,三種類型的敵機都有同一個腳本控制,生命值(hp)、速度(speed)、分值,3個屬性為公共變量(public),直接在Inspector屬性面板中分別修改三種敵機的預制件(prefab)的屬性,生成的敵機就擁有不同的屬性。敵機的生成通過生成器(spawn)控制,生成器的腳本通過不同的頻率控制生成器隨機生成敵機,當然,敵機我也是為了重復利用,采用了對象池的技術,通過生成鏈表和死亡鏈表來重復使用。

二、游戲的實現

(一)主角飛機的移動

在本款游戲中,主要是在安卓端使用,所以主要是用在手機拖拽,所以調用了OnMouseDrag函數,并且要將鼠標點擊的屏幕坐標轉換為世界坐標來計算,只能限定在屏幕內拖動不能拖到屏幕外側。

(二)主角的碰撞檢測

碰撞檢測的觸發(fā)條件是,兩個物體必須要有Box Collider或者Charater Controller,且至少一個Rigidbody組件。而在本次的游戲設計中,除了在主角物體的Inspector面板中的添加的Box Collider2D組件之外,還應該給主角添加Rigidbody2D,Rigidbody2D是剛體組件,使物體具有物理屬性,將其中的Gravity Scale設置為0,這樣物體不會受到重力影響,不會掉落,Box Collider2D是物體在2D環(huán)境中的碰撞體,可以用來檢測是否發(fā)生碰撞,調整Box Collider2D的大小剛好包圍飛機,勾選其中的Is Trigger,使其進行觸發(fā)檢測,但并不會產生物理碰撞效果。同時,將player的tag設置成為Player,同理,后面提到的子彈,敵機,獎勵物品都會有Tag,以及Box Colloder2D及Rigidbody2D,是為了檢測兩者直接的碰撞檢測,那么主角就會有兩者情況,第一種是碰撞到敵機或者是敵機的子彈,首先要判斷當前血量,如果血量大于0,那么主角的血量減少否則就播放主角的死亡動畫,展開游戲結束的畫面。所以,子彈和敵機的碰撞也是上述相同的道理。

(三)歷史最高和最高分數

用Unity中的PlayerPrefs.GetInt方法來保存歷史最高的,PlayerPrefs.SetInt方法來設置,具體的實現邏輯為第一次分數肯定是歷史最高,然后保存在本地,當第二次失敗之后,會將第二次的成績跟歷史最高成績對比,如果第二次的成績大于歷史最高成績,那么就把第二次的成績變成歷史記錄顯示出來,反之,則還是原來的歷史分數

三、總結

本文主要實現了基于Unity開發(fā)人機射擊游戲的詳細基本開發(fā)流程。

首先分析了游戲行業(yè)的發(fā)展趨勢及手游的市場的巨大前景,介紹了Unity開發(fā)工具的優(yōu)勢和特點,C#的優(yōu)勢,通過商業(yè)前景和發(fā)展趨勢闡述了選擇這個項目的意義。后面介紹了開發(fā)所在的系統環(huán)境和開發(fā)過程中用到的工具以及相關技術,接著就是此項目設計、實現具體步驟。

此項目基本實現了飛行射擊游戲的功能,但是細節(jié)方面還遠遠不夠,游戲難度控制也沒有太多的體現,敵機類型只有三種,玩家飛機只有一種,獎勵物品和細節(jié)動畫特效都做得不夠全面。旨在通過此項目的實現,熟悉Unity結合C#腳本開發(fā)手游的具體流程,掌握Unity開發(fā)工具的常用功能,以及對Unity開發(fā)虛擬現實手游的展望。在項目的實現過程中,也遇到了大大小小的問題,但都在導師、同學的幫助下逐一解決了。也使自己清楚自己的不足和局限性,尤其是在Unity的基礎方面還需要大量的花費時間去學習,由于我才使用Unity不久,算是個初學者,此次項目的設計和實現還有欠缺和不足的地方,能有進一步改善的空間。

參考文獻:

[1]金璽曾《Unity3D\2D手機游戲開發(fā)(第二版)》清華大學出版社2014年10月.

[2]Unity Technologies 《Unity4.X從入門到精通》中國鐵道出版社 2013年11月.

[3](美)梅納德, 瓦格斯特夫著,占紅來譯《Unity游戲開發(fā)實戰(zhàn)(原書第2版)》機械工業(yè)出版社 2015年11月.

[4](美) Matthew Johnson,James A. Henley著 郭華豐 韋靜 譯《Unity2D游戲開發(fā)秘籍》清華大學出版社 2015年9月.

猜你喜歡
安卓
四大重要升級安卓13正式定檔
安卓應用64位的問題
安卓內存巨大為何還要殺后臺
安卓12預覽版體驗
在Windows 11中玩轉《安卓》App
安卓11正式發(fā)布
讓iPhone變安卓,這是真的野
文物表情包
安卓系統的更新換代
封閉的安卓沒有未來
武山县| 邻水| 施秉县| 甘泉县| 孟津县| 松桃| 常宁市| 左权县| 九寨沟县| 阳泉市| 龙川县| 深州市| 古田县| 洞口县| 浏阳市| 宾川县| 习水县| 巴中市| 化州市| 兖州市| 新民市| 昌图县| 高尔夫| 彭阳县| 溆浦县| 邛崃市| 邵东县| 平阴县| 乌兰察布市| 定襄县| 弥渡县| 寿阳县| 南丹县| 土默特左旗| 凭祥市| 红桥区| 双辽市| 连江县| 开封县| 长乐市| 辽宁省|