专业编程基础技术教程

网站首页 > 基础教程 正文

自学 Cocos JS 之 另一场战斗

ccvgpt 2024-08-14 15:25:35 基础教程 58 ℃

老规矩,上效果图

UI布局

  1. 新建场景Battle_Team
  2. 场景添加Sprite节点Background
  3. 在Background节点增加空节点Battle,用于处理整个场景里的战斗单元
  4. 在Background节点增加空节点qiangdilaixi,用于开场播放强敌来袭龙骨动画
  5. 在qiangdilaixi节点上添加龙骨组件,把强敌来袭相关资源贴上去
  6. Canvas上添加两个脚本,一个是读取本地Json配置的ConfigMgr脚本,还有一个是Battle_Team脚本
  7. 将Character和Model两个Json文件拖到ConfigMgr脚本里
  8. 将Battle节点,强敌来袭节点,和战斗场景里用到的Role预制体拖到Battle.脚本里

至此UI布局完成。

自学 Cocos JS 之 另一场战斗

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函数

  • 强制战斗结束,拉回原来的位置

至此代码部分完成

结语

这篇是上一篇的升级版,虽然还是有一些表现上的问题,我会继续修改。若有什么问题,请评论区与我交流。

谢谢

Tags:

最近发表
标签列表