BattleManager:对战斗界面进行控制,
加载相关数据,关卡和表中敌人数据
生成地图
生成员工列表方法
生成防御塔方法:
开始时就调用,先看缓存中是否有对应数据,有则按照之前的位置生成防御塔,以及员工列表信息,没有则空白,根据玩家拖动生成√
战斗过程:
通过参数判断过程
战斗开始:
判断普通关和Boss关
普通关则
延时2s后开始进入战斗,设置一个参数,此时变为true,然后执行生成敌人方法
Boss关则先进行决策,决策完成后再进行战斗
生成敌人方法:
每0.5秒创建一个敌人,敌人数量按照表中数据生成,创建的敌人为预制体,此预制体附带脚本组件,传入对应敌人数据,并实时对敌人数据进行更新,如血量和存活状态
玩家拖动生成防御塔:
使用坐标:
使用触摸点击事件,按住头像拖动实际为按下并且移动,需时刻获取当前坐标,松开后获取坐标,与防御塔建造点的坐标进行对比,若不同则员工列表还原此员工,鼠标位置头像消失,若相同有两种情况,建造点为空,则直接生成防御塔,员工列表删除该数据,不为空,与该防御塔替换,建造该员工,员工列表替换该数据
或者使用碰撞体检测
将建造点添加碰撞体组件,当头像拖动碰撞检测后进行建造功能
战斗中:
添加碰撞检测,敌人进入防御他攻击范围后进行攻击,需要设置子弹方向朝着敌人方向,
敌人从起点延路线行走,使用anim制作
伤害机制:
需单独设一个类用于数据计算
计算伤害,子弹也需设置碰撞体,造成伤害后飘字显示,并显示伤害类型,
伤害类型设置公共类,通过参数调用
血条UI设置
死亡后渐隐消失,死亡后调用方法,调整透明度再销毁
并产生奖励,奖励头顶播放加资金飘字
战斗结束
弹窗成功或失败
战斗中没有敌人进入终点且敌人全部生成并消失则为成功,成功后结算奖励添加到宝箱中
点击宝箱,打开弹窗获取
若有敌人进入终点则失败,失败则重置本关
终点设置碰撞体,与敌人碰撞检测
enemyControllors:
敌人预制体控制类
传参数,设置好基本属性
在此类中添加该敌人会发生的事件
行走,死亡,血条减少,飘字等
towerControllors
防御塔预制体控制类
传参数,设置好基本属性
攻击,释放技能,以及该预制体的等级和属性
AnimAction
状态动画播放,该预制体使用哪个状态的动画
AttackAction
攻击动画播放,技能伤害等
BoxControllers
控制宝箱,点击宝箱弹出领取奖励弹窗,领取奖励弹窗做成预制体
奖励数据需写在本地数据中,若本地数据有值,则登录后就可领取
chapterControllers
关卡控制类,控制战斗界面上方关卡为哪一关,以及自动滑动
关卡数通过本地缓存读取,并修改数据