HTML5游戏开发进阶之加入单位的代码教程
建立一个通用且易用的框架,通过该框架就能很容易地向关卡中添加单位,并使用鼠标选中它们。
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属性