賴麗春 金安安



摘要:基于Cocos2d-JS的“越獄酷跑”游戲的設計與實現,該文通過使用Cocos2d-JS引擎、WebStorm編輯器以及CocosStudio場景布局功能,實現了游戲中槍類、角色、游戲地圖模塊,實現了“越獄酷跑”游戲聯網功能,同時實現了PC端、手機端“越獄酷跑”游戲,并進一步對游戲中地圖循環問題進行了剖析,提供了比較好的解決方法。
關鍵詞:Coco2d-JS;手機游戲;性能優化;HTML5
中圖分類號:TN99 ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)14-0038-02
1 研究背景
手機游戲逐漸普及到大眾生活中,并慢慢走入人們的日常視野,基于網頁開發的游戲也隨之而帶動起來,并掀起了一股熱潮。大部分開發者借助HTML5強大的跨平臺性,對于PC平臺的部署和移動平臺的部署的時機日語成熟。近年來,很多設計師選擇要求不高的動畫主題,如紙牌游戲,策略游戲。“巴哈姆特之怒”這是HTML5實現一次開發,并同時完成HTML5游戲。通過游戲具體的實現過程,便于快速理解及應用。
過去的手機和電腦的內存是非常珍貴的,因此,很重視內存充不充足的問題。雖然在這一技術上科技日益更新,但內存問題還是很重要的問題。目前市場流動的手機游戲,大部分上從應用市場下載的游戲,這些屬于原生游戲[1]。利用Cocos2d-JS開發出來的免安裝游戲,也就是HTML5游戲。因此,基于Cocos2d-JS開發的游戲符合了現在的市場需求。
2 游戲需求分析
總體目標:主要通過類似于超級馬里奧寺廟,勝利大逃亡和其他游戲概念設計,游戲引擎的分析和優化功能來實現。游戲場景地圖有6個,每個場景可以是一個無限循環,角色是由玩家控制的,進入游戲后,玩家需要控制屏幕上的角色[2]。使角色在地圖上滑行或者跳躍,以躲避攻擊,地圖無限循環,你也可以跑回來,躲避子彈的射擊,闖過關卡,即可以獲得星星,以此獲得分數。當角色被子彈射擊中,并耗盡生命數,則表示角色身亡,游戲結束。
在游戲結束的時候,對于玩家的游戲成果。我們采用數據持久化,仍然保留,玩家可以最高分數進行比較。并可以看到玩家當前一局游戲分數,在單人游戲模塊中,大致的功能需求如下:1)實現歡迎動畫功能[3]。剛開始游戲時,玩家將進入游戲主菜單界面[4]。按PLAY開始游戲,你可以選擇游戲開始并做好準備;2)實現游戲說明功能。在主菜單界面進入游戲,即會彈出游戲規則窗口,選擇下次不提醒,下次則不會彈出該窗口;3)實現行走和從屏幕上跳躍控制玩家角色的功能。滑動屏幕是角色行走功能,往右一直滑屏幕右邊是角色跳躍,考驗著玩家的耐心和敏銳的觀察力,同時手指還需要反應及時、迅速;4)實現游戲中加載聲音的功能。在游戲中的伴奏,背景音樂響起,按照精靈行動,相應的配合動感的音樂節奏;5)實現碰撞功能。當子彈射擊中精靈,精靈則不能通過關卡,與子彈的碰撞,無論是向左或向右碰撞,只要碰撞到精靈,精靈的耳朵則會兩耳張開是開放的,生命的數量將被降低一;6)實現重力功能。精靈跳躍高度不是隨機的,以便反映重力功能的真實性,使在跳動到一定的高度自動跳回地板上;7)實現子彈自動移動和射擊的功能。主要的敵人,上空移動,敵人會隨機射擊,按照時間和距離隨意移動,然后釋放出子彈;8)實現躲避功能。當面對敵人時,玩家可以控制精靈逃脫,退回一定距離,抓住一次穿越的機會;9)實現分數拾取功能。玩家可以控制人物通過過關,來獲取分數和提高生命數。玩家可以控制角色通過,在游戲過程中獲得星星數,即是分數[5]。以此來獲得通關的機會;10)實現道具功能。玩家可以控制人物躲避射擊,最終沖越重重阻礙,拯救被困獄中的貓;11)實現子彈功能。由后臺統一射擊,不定時釋放出子彈。我們需要提供各種粒子效果,實現子彈射擊中的效果,如火焰彈;12)實現地圖循環功能。無限的拖動地圖,以達到游戲可以無限循環的結果。利用了瓦片地圖,背景可以不斷重復利用,減少占用內存。
3 游戲整體分析設計
1)游戲主循環模塊:負責游戲中每一幀的循環處理,即刷幀模塊。利用此模塊,結合瓦片地圖可以實現。
2)游戲控制模塊:角色、子彈、星星等的物品的創建、控制、移動功能的模塊。
3)游戲物理引擎模塊:提供游戲的物理屬性,及物理世界的模擬,粒子系統實現。
4)游戲碰撞檢測模塊:監督物品間的碰撞,碰撞處理以及碰撞后的結局。
5)游戲子彈模塊:子彈相關處理模塊,子彈的射擊和移動。
6)游戲音效模塊:為提供游戲背景音效。
7)游戲地圖加載模塊:加載瓦片地圖和地圖移動操作,以及地圖循環。
4 游戲的設計與實現
4.1 游戲的整體實現
在上述的章節中,我們已經對本游戲的界面設計,模塊功能分析,總體流程設計做了詳細的分析,下面我們將通過如圖2的類圖來說明本游戲的開發與設計。
1)Mian類:主要為啟動游戲,也可以作為程序的入口,因而也叫作游戲的啟動類。
2)preloader類:為主類預加載各種資源,為游戲界面布局加載類[6]。
3)collision類:碰撞檢測,為游戲的碰撞檢測機制,在本游戲中處理人物子彈與dog類的碰撞。
4)tilemap類:TMX地圖,載入地圖,gunner、財物對象是從這里生成。
5)gunner類:gunner角色類,槍的創建、控制、射擊等gunner進行控制處理。
4.2 游戲槍類模塊的實現
槍的設計的思路:1)從以上類圖我們可以知道一個比較簡單的關系,gunner角色負責子彈的發射,即是由guuer操作。2)槍的Bullet 類之負責一個創建子彈、子彈的移動、碰撞和銷毀。