HTML5遊戲開發進階 6 :加入單位
建立一個通用且易用的框架,通過該框架就能很容易地向關卡中新增單位,並使用滑鼠選中它們。
6.1 定義單位
加入以下游戲單位:
建築(Buildings):四種型別的建築
基地(Base):主建築,建造其他建築的前提
星港(Starport):用來生產車輛與飛行器
煉油廠(Harvester):用來從油田中提煉資源
炮塔(Ground turret):針對敵對車輛的防禦性建築
車輛(Vehicles):四種型別的車輛
運輸車(Transport):用於運輸物資和人員,沒有裝備武器
採油車(Harvester):在油田上展開成為煉油廠。
輕型坦克(Scout tank):輕型、快速的坦克,用來偵查。
重型坦克(Heavy tank):慢速、裝甲厚、火力強的坦克。
飛行器(Aircraft):兩種型別的飛行器
直升機(Chopper):慢速移動,可以攻擊地面和空中單位
戰鬥機(Wraith):快速移動,只能攻擊空中單位
地形(Terrain):除了地圖中已有的地形,還定義了以下兩種地形
油田(Oil field):礦產資源,通過建立煉油廠可以從資源中獲取資金
岩石(Rocks):有趣的岩石
<!-- 定義遊戲中的單位 -->
<script src="js/buildings.js" type="text/javascript" charset="utf-8"></script>
<script src="js/vehicles.js" type="text/javascript" charset="utf-8"></script>
<script src="js/aircraft.js" type="text/javascript" charset="utf-8"></script>
<script src="js/terrain.js" type="text/javascript" charset="utf-8"></script>
6.2 第一個物體:主基地
主基地總是在關卡開始的時候就已經建造完畢,而其他建築則需要有玩家自己建造。只要有足夠的資金,主基地也沒有被摧毀,玩家就可以建造其他建築。
影像中每一排包括一個預設的動畫迴圈(四幀)、一個損壞狀態的基地(一幀)和建造其他建築時的動畫(三幀)
building.js
6.3 為關卡新增單位
使地圖包含預載入的單位型別列表和單位項列表。
6.4 繪製單位
需要在單位物件內部實現animate()和draw()方法
6.5 新增星港
用來購買地面或空中單位。
6.6 新增煉油廠
既是建築又是車輛的單位。
6.7 新增炮塔
它只能攻擊地面上的敵人,預設模式為guard莫斯。
direction屬性可以使用0到7的數字
額外的屬性:是否具有攻擊性、當前的方向、武器的型別等。
6.8 新增車輛
與炮塔類似 vehicles.js
6.9 新增飛行器
新增了陰影aircraft.js
6.10 新增地形
terrain.js
6.11 選中游戲單位
允許玩家通過單擊或拖動拉框來選中游戲中的單位
6.12 強調選中的單位
單位中selected屬性
相關文章
- HTML5遊戲開發進階 7 :單位智慧移動HTML遊戲開發
- HTML5遊戲開發進階 10:完成單人戰役HTML遊戲開發
- HTML5遊戲開發進階 4 :物理引擎整合HTML遊戲開發
- HTML5遊戲開發進階 3 :物理引擎基礎HTML遊戲開發
- HTML5遊戲開發進階 8 :新增更多的遊戲元素HTML遊戲開發
- HTML5遊戲開發進階 9:新增武器和戰鬥HTML遊戲開發
- HTML5遊戲開發進階 12:多人對戰遊戲操作HTML遊戲開發
- HTML5遊戲開發進階 2 :建立基本的遊戲世界HTML遊戲開發
- HTML5遊戲開發進階 11:WebSocket與多人對戰模式HTML遊戲開發Web模式
- HTML5遊戲開發進階 5 :建立即時戰略遊戲世界HTML遊戲開發
- 位運算進階
- HTML5 進階系列:web StorageHTMLWeb
- 常用單位進位制
- HTML5遊戲開發進階指南(亞馬遜5星暢銷書,教你用HTML5和JavaScript構建遊戲!)HTML遊戲開發亞馬遜JavaScript
- HTML5進階FileReader的使用HTML
- 【C進階】16、位運算子
- HTML5 canvas遊戲開發實戰 6 : 俄羅斯方塊HTMLCanvas遊戲開發
- 前端進階系列(三):HTML5新特性前端HTML
- HTML5 進階系列:indexedDB 資料庫HTMLIndex資料庫
- 外部程式::Vim進階索引[6]索引
- HTML5移動遊戲開發高階程式設計 3:試飛結束,向移動進發HTML遊戲開發程式設計
- HTML5 進階系列:canvas 動態圖表HTMLCanvas
- [ ES6 ] 進階篇(一) —— PromisePromise
- 前端進階-ES6函式前端函式
- html5進階學習第二天HTML
- HTML5 進階系列:檔案上傳下載HTML
- HTML5 進階系列:拖放 API 實現拖放排序HTMLAPI排序
- 全新改進的HTML5表單建立HTML
- 前端進階-ES6內建功能前端
- 【進階 6-1 期】JavaScript 高階函式淺析JavaScript函式
- HTML5移動遊戲開發高階程式設計 2:從玩具到遊戲HTML遊戲開發程式設計
- HTML5移動遊戲開發高階程式設計 9:自建Quintus引擎(1)HTML遊戲開發程式設計UI
- HTML5移動遊戲開發高階程式設計 10:自建Quintus引擎(2)HTML遊戲開發程式設計UI
- HTML5移動遊戲開發高階程式設計 11:自建Quintus引擎(3)HTML遊戲開發程式設計UI
- go 單元測試進階篇Go
- [譯]ES6新特性:八進位制和二進位制整數字面量
- 加入雲原生實戰營(星球),帶你進階 Go + 雲原生高階開發工程師Go工程師
- 簡單二進位制編碼(SBE)