老规矩,上效果图
UI布局
- 新建场景Battle_Team
- 场景添加Sprite节点Background
- 在Background节点增加空节点Battle,用于处理整个场景里的战斗单元
- 在Background节点增加空节点qiangdilaixi,用于开场播放强敌来袭龙骨动画
- 在qiangdilaixi节点上添加龙骨组件,把强敌来袭相关资源贴上去
- Canvas上添加两个脚本,一个是读取本地Json配置的ConfigMgr脚本,还有一个是Battle_Team脚本
- 将Character和Model两个Json文件拖到ConfigMgr脚本里
- 将Battle节点,强敌来袭节点,和战斗场景里用到的Role预制体拖到Battle.脚本里
至此UI布局完成。
Role预制体
这里主要讲两个节点的
- RoleDB,这个是个空节点,挂载了DragonBones组件
- 还有一个Label控件Blood,Blood节点同样添加了一个Animation组件,做法和上一节相同。
上一篇,《一场简单的战斗》中红色的飘血效果不明显,这次换成位图字体
至此Role perfab完成
相关代码
- ConfigMgr.js
这个脚本的功能没什么好说的,就是加载两个配置表文件:Character.json和Model.json
- Battle_Team.js
start函数
- 生成AB两队的阵容
- 8秒强制结束
- 生成对战信息
- 强敌来袭结束后战斗开始
update函数
- 分别调用AB两队Role的doUpdate
MakeMatchTable函数
- 让A队的1号和B队的1号打,以此类推
- Role.js
createTeamMember函数
- 初始化成员变量
- 加载模型
- 注册动画回调函数
setTarget函数
- 设置目标
setAnimation函数
- 播放动画
doUpdate函数
- 在攻击距离范围内攻击,不在攻击距离范围内就跑向目标
forceMoveBack函数
- 强制战斗结束,拉回原来的位置
至此代码部分完成
结语
这篇是上一篇的升级版,虽然还是有一些表现上的问题,我会继续修改。若有什么问题,请评论区与我交流。
谢谢