程媛
摘要:隨著數字化、科學化信息的發展,移動設備的普及,人們生活質量的提高,手機游戲在手機上占據了一定比例。該文主要通過Unity3D游戲制作引擎作為開發工具,詳細描述了簡單的飛行小鳥游戲的設計思路和實現方法。該游戲共包含3關,由易到難,控制一只不斷往下掉的小鳥,按空格來飛升一小段距離并不停地穿越前面水管的空隙,碰到水管或掉在地面都會死亡。
關鍵詞:手機游戲;Unity3D;飛行小鳥;場景設置
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)30-0065-02
Abstract: With the development of digital and scientific information, the popularization of mobile devices and the improvement of people's quality of life, mobile games account for a certain proportion of mobile phones. This paper mainly USES Unity3D game production engine as the development tool, and describes in detail the design idea and implementation method of the simple flying bird game. This game consists of 3 levels, from easy to difficult, control a constantly falling bird, according to the space to fly a short distance through the gap in front of the pipe, hit the pipe or fall on the ground will die.
Key words: mobile phone game; Unity3D; Flappy Bird; scene setting
1 背景
手機游戲日趨大眾化,越來越多的手機游戲涌現。游戲種類繁多,例如動作游戲,冒險游戲,策略游戲,模擬游戲,角色扮演類游戲,這些游戲都需要考驗人的操作和動腦動手能力。有很多人工作之余只想休閑放松一下,再玩復雜需要動腦的游戲覺得辛苦。因此開發一個操作不太復雜,配合對應的音效讓玩家在游玩時感到輕松愉快的游戲很有意義。
2 Unity3D技術
Unity,也稱Unity 3D,是近幾年非常流行的一個3D游戲開發引擎,它的特點是跨平臺能力強,支持PC、Mac、Linux、網頁、IOS、Android等幾乎所有的平臺,移植便捷。在手機平臺Unity幾乎成為3D游戲開發的標準工具。而且Unity3D本身就自帶有壓縮處理以及導出功能,在完成制作后即可進行導出運行。Unity3d格式處理后能夠導出的可執行文件為exe (pc版格式),或者apk (手機客戶端),導出后即是一個應用程序,點擊即可運行,且不耗用內存。游戲界面采用簡單的Button控件設罝,效果清晰直觀,用戶使用時容易上手。
3 設計方案
3.1 關卡設計
游戲關卡總共有3關,根據游戲的難易程度由易到難,每關都不盡相同,關卡會有設計條件,達到通關條件即可進入下一關,在游戲過程中我們可以按下ESC開關游戲聲音和暫停或者退出游戲,在失敗情況下可點擊繼續游戲從該關卡開始重新闖關。
3.2 游戲資源及角色對象設計
1)準備游戲資源:獲取FlappyBird的貼圖資源和音效資源。
2)設置游戲場景:為了區分場景的層次(主要是用來決定圖層的順序,sorting Layer的功能)以及編碼的需求,建立一些tag sorting Layer和Layer。先點擊Unity編輯器右上方的Layers下拉菜單并選擇"Edit Layers..."
3)移動的道路以及障礙:一格道路有兩個障礙,障礙由上下兩根水管組成,僅中間可通過,場景中用兩格道路來反復循環(當一格道路移出屏幕后就重新調整位置,等待下一次出現在屏幕上),達到不斷移動的效果。
4)準備游戲Player:首先小鳥有個飛行的幀動畫,在sprite文件夾下的atlas中,選擇三個幀,直接拖動到場景中,unity自動形成了一個帶有幀動畫的sprite。
5)游戲開始頁面:歡迎頁面有個小鳥的動畫,并且能夠響應觸摸后開始游戲(在isReady.cs中實現)。小鳥的動畫就是上下擺動的過程,選擇小鳥,然后在Animation界面中,添加Position屬性等其他屬性。
6)生成的游戲障礙:將上下水管組合到一個游戲體里,代碼里建一個生產器,每隔幾秒鐘,隨機出現上下間隔距離不等的障礙。
7)游戲主角得分與死亡:在障礙間隔中間建一個鋼體,當主角通過時,系統便在分數上加上一,并記錄上最高分,當出現更高分數時,變刷新最高分。當主角觸碰障礙物或掉落地面時,便游戲結束。
8)游戲聲音:在通過不同素材聲源的剪切,剪切出幾段短暫的聲音,當主角死亡時便播放聲音。
4 功能實現
4.1 設置游戲場景
開始界面只是簡單的通過添加背景音樂和設計兩只飛行的小鳥進行布置,玩家可通過點擊開始游戲按鈕進行游玩。之后進入游戲界面會出現一個下落的小鳥,玩家需要通過操控使小鳥避免落地或者撞上障礙物。
4.2 游戲界面
設置上下兩個板塊,加入碰撞,便是小鳥在范圍內進行活動,不會因為飛得過高或者過低飛出屏幕,在達到頂部或落地便游戲結束。玩家可通過按下空格鍵來使小鳥上升以躲避障礙物,主角的翅膀拍打動畫通過切割再用不同幀翅膀角度的變換達到拍打的效果。
4.3 障礙物生成
游戲內將上下水管組合到一個游戲體里,代碼里建一個生產器進行隨機生成障礙物以阻礙玩家通關,玩家可通過操控小鳥進行躲避。
4.4 結束界面
通關游戲即可達到結束界面,并且會播放結束鼓掌音效。玩家可通過點擊按鈕結束游戲或者重新游戲。
4.5 暫停界面
玩家可以通過按下ESC彈出暫停界面進行暫停,可以開啟或者關閉聲音,退出游戲和繼續游戲。
5 結束語
該文所設計的游戲相對較簡單,通過unity 3d軟件和編程工具的結合可以輕松創建各種3D模型,模擬模型動態以及插入互動內容。該游戲涉及主角的創建、場景的繪制、場景移動控制、障礙物生成器等內容,由于篇幅關系沒有說明的更詳細,只是把游戲的整個設計實現思路簡單的闡述出來。該游戲項目還有很多不足之處可以進一步改進,比如可以擁有一些道具,通關記錄,以及對應的排名、以及增加其他模式等,有待作者進一步開發去實現。
參考文獻:
[1] 金璽曾. Unity 3D/2D 手機游戲開發[M]. 北京: 清華大學出版社, 2014.
[2] 張帆. Unity3D游戲開發基礎[M]. 杭州: 浙江工商大學出版社, 2013.
[3] 張天驥. Unity 3D游戲特效制作典型實例[M]. 北京: 人民郵電出版社, 2017.
[4] 姜雪偉. Unity 3D實戰核心技術詳解[M]. 北京: 電子工業出版社,2017.
[5] 朱玉. 基于Unity3D漫游系統的設計與研究[J]. 信息安全與技術, 2014(12).
[6] 蔣元, 蔡勝軍, 何紹勇, 等. 基于Unity3D的虛擬地理環境構建[J]. 現代計算機: 專業版, 2014(3).
【通聯編輯:謝媛媛】