《糖果保衛傳奇》1

來源:互聯網
上載者:User

標籤:cocos2dx   遊戲開發   

二遊戲架構2.1總覽


2.2詳細介紹2.2.1枚舉管理器

     定義了整個遊戲裡的怪物,障礙物,炮塔,子彈,怪物動畫,子彈動畫,炮塔發射子彈時的動畫,怪物和障礙物消失的動畫,磚塊地圖的格子狀態,怪物的生存狀態等

2.2.2動畫管理員

     這是一個單例類,在遊戲運行後執行初始化函數,並在初始化函數中載入動畫資源,根據ID製作相對應的動畫,並將動畫儲存到引擎提供的動畫緩衝中。該模組管理整個遊戲裡涉及到的動畫,並通過枚舉管理器中唯一識別的ID來引用。

2.2.3資料管理器

    遊戲啟動後,該模組讀取各個檔案並將資料存放區到對應的資料結構中,在遊戲的過程中,對外提供資料的訪問借口。儲存遊戲中新產生的資料,並在遊戲關閉後將各個資料結構中的資料寫會對應的檔案,達到儲存進度的效果。另外,該模組還維護了全域的加速狀態資訊,如果處於加速狀態則怪物移動的更快,出怪時間間隔更小,各種動畫也是加速效果。

2.2.4遊戲層

     遊戲最上層的邏輯,接受,響應並分發外部觸摸事件。負責載入地圖,控制遊戲流程,以及顯示遊戲的輸贏邏輯。

2.2.5地圖層

     遊戲中最核心以及最複雜的邏輯處理中心。解析tmx格式的地圖,並將地圖上攜帶的資訊記錄到對應的資料結構中儲存。解析和本地圖對應的出怪設定檔,根據設定檔中的資料出怪,並維護地圖上怪物數組。根據地圖上的障礙物資訊,建立對應的障礙物並儲存到數組中。地圖層接受來自遊戲層的觸摸分發,並響應。同時還維護了炮塔數組,子彈數組。並在更新函數中更新這些數組中的元素,將死亡狀態的實體從數組中刪除,和從地圖層刪除。

2.2.6怪物

      怪物作為一個實體,每建立一個怪物需要把它放到地圖層維護的數組中,怪物攜帶有本地圖上的道路資訊,在怪物的即時更新過程中能夠判斷什麼時候拐彎。擷取地圖層的子彈數組,在更新函數中做與子彈的碰撞檢測,如果碰到則播放與子彈對應的受擊動畫;如果死亡則將其設定為死亡狀態,消失掉。

 

2.2.7障礙物

      每建立一個障礙物也儲存一份到地圖層的數組中,和怪物唯一的不同是,障礙物是靜止的,其餘的邏輯都一樣。

 

2.2.8炮塔

      在地圖層接受遊戲層的觸摸事件,放置相應的炮塔,每當建立一個炮塔需要將其放倒地圖層的數組中。炮塔被建立後啟動更新邏輯,在更新函數中根據地圖層的怪物數組來選擇一個攻擊目標,如果有符合的則建立子彈,並將子彈添加到地圖層的子彈數組中;如果沒有攻擊目標,則不作響應。在點擊炮塔位置會展示出炮塔的升級與撤銷介面,炮塔升級需要消耗金幣,撤銷炮塔可以獲得金幣。

整個炮塔系統有三層類繼承體系,最上層的類是負責炮塔基礎資料的定義,中介層是負責區分各種不同的炮塔攻擊方式與攻擊邏輯,最下層是實際的炮塔與實際的攻擊邏輯,第三層的類會重複使用中介層中定義的攻擊方式與攻擊邏輯,實現了代碼複用。並在中介層與第三層之間使用了Template Method設計方式。

2.2.9子彈

      子彈在炮塔的攻擊邏輯中被建立,並被添加到地圖層的子彈數組中。子彈出生後啟動更新函數,根據既定的方向移動,並一直執行子彈動畫。子彈與怪物發生碰撞,如果子彈為爆破類型則直接展示爆破動畫消失,如果子彈是持續型的則不會消失。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.