賴麗春 金安安



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