给宝宝做一个cocos免费游戏

第一章 背景和开发框架介绍
第二章 Node树和场景制作
第三章 UI、地图和关卡文本制作
第四章 摇杆、按键和角色动画制作
**第五章 敌人和AI制作**
第六章 角色和敌人行为互动脚本制作
第七章 游戏打包、发布和调试


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

COCOS敌人和AI制作

  • 给宝宝做一个cocos免费游戏
  • 前言
  • 一、行为和关联的技术实现
  • 二、具体实现步骤
    • 1.建立enemy的prefab
    • 2.AIJS.JS编写逻辑
      • 2.1添加预载体到Canvas节点的canvasjs.js组件:
      • 2.2 在装地图对象的JSON添加敌人
      • 2.3 在loadMapObj添加散布的方法(上几章预留了)
      • 2.4 在aijs.js添加AI逻辑吧
        • 2.4.1简单粗暴的距离AI逻辑
        • 2.4.2碰撞逻辑
  • 总结

前言

上一章制作了简单的摇杆控制角色的内容(交互和伤害运算放到下一章,由简单到复杂),今天开始做AI逻辑


一、行为和关联的技术实现

行为 剖析 涉及的cc技术
感知 感知一定范围闯进来了不同组的对象 1.使用碰撞事件,在碰撞进入的时候写代码2.在update方法直接判断距离
反应 感知进入范围后,执行的动作如跟随追赶等 1.使用碰撞的stay方法实现2.update上检查距离实现
采取行动 进入攻击范围,采取行动 运行技能释放逻辑,优先释放适当的技能
行动交互 双方执行行动后的交互行为如被攻击,防止穿透的反弹等等 同上
离开 闯入的对象离开一定范围,可以执行回到原来初始位置 1.碰撞事件end执行 2.update方法检查超过一定距离后执行

二、具体实现步骤

1.建立enemy的prefab

其实可以复制player的节点架构。然后建立prefab。当然,先砍掉太细的节点,不需要那么复杂的节点,提高下性能。原则如下:
(1)boss类:要绑定动作,可以考虑跟主角一致
(2)高级AI类:只保留可能加载动作的node
(3)低级AI类:只保留body和一两个运动的node
(4)物体AI类:只保留一个节点,靠碰撞产生伤害

在player节点右击复制,然后粘贴,重命名为eneboss,精简下减少性能支出,结果如下。

给rarm、rleg、添加碰撞组件(毕竟动作都是在右边发出,head和body是承受伤害的,你懂…)

添加aijs.js作为组件,方便执行AI逻辑,reacttype:enemy(敌人AI)。

最后拖进去prefab文件夹成为prefab

2.AIJS.JS编写逻辑

2.1添加预载体到Canvas节点的canvasjs.js组件:

2.2 在装地图对象的JSON添加敌人

"mapobj" : [
{"sname":"mainMap","type":"enemis","name":"en1","posx":"300","posy":"100","rotation":"0"},
...
]

2.3 在loadMapObj添加散布的方法(上几章预留了)

2.4 在aijs.js添加AI逻辑吧

2.4.1简单粗暴的距离AI逻辑

添加个距离参数吧

    properties: {reacttype:'guid', //guid-guid文本  dialog-对话 player-用户ai enemy-en的ai story-剧情(文本、动画)lv:10001,//章节最大9999个对话 不同的章节用20001 30001...feeldistance:200,actdistance:100,movespeed:3,},

update添加监控代码

    update (dt) {//通过距离判断switch(this.reacttype){case 'guid':break;case 'dialog':break;case 'player':break;case 'enemy':break;var player = this.node.parent.getChildByName('player');var pdis = this.node.position.sub(player.position);//有方向if(this.actdistance < pdis.mag() < this.feeldistance){if(pdis > 0) {this.node.x += this.movespeed;} else if(pdis < 0){this.node.x -= this.movespeed;} //1d x轴运算即可}if(this.actdistance >= pdis.mag()){ //进入动作范围,可以执行动作攻击//take actionsthis.takeActions();}if(pdis.mag() > this.feeldistance){cc.tween(this.node).to(2,{position:this.initpos}); //缓动回归原始位置}case 'story':break;}},takeActions:function(e){//random skillvar an = this.node.getComponent(cc.Animation);var anstatus = this.node.getComponent(cc.Animation).AnimationStatus;if(an){an.play('att_lhit');};//check free//important level},

2.4.2碰撞逻辑

    //碰撞进入执行一次,避免接触后狂执行onCollisionEnter:function(other,self){switch(this.reacttype){case 'guid':break;case 'dialog':break;case 'player':break;case 'enemy':// -hp//action backvar pdis = self.node.position.sub(other.node.position);if(pdis > 0 ){ self.node.setPotision(self.node.x + 3,self.node.y);}if(pdis < 0 ){ self.node.setPotision(self.node.x - 3,self.node.y);}break;case 'story':break;}},

总结

今天没啥好总结的,所用的技术都是前几章出现的。只是AI逻辑上面可以作为参考。更多精彩内容请看后面章节,后面再做交互方面的内容:地图阻挡(敌人和角色)、角色互动、角色和敌人互动…

COCOS敌人和AI制作相关推荐

  1. c++ ea 代码 生成_EA公司教AI制作游戏角色,行动流畅自然,全程无需人类介入

    想开发出一款爆款游戏,是一件难度极高的事情,不仅要有精妙的内容设计,精致的光影效果,自然的动画建模,还要投入相当多的资金和时间.现在,美国游戏公司艺电(EA)正在与加拿大不列颠哥伦比亚大学(UBC)合 ...

  2. AI制作有声绘本《小马历险记》

    最近,我正在准备一堂给家长AI的课程,其中有一节专门介绍如何利用AI帮助孩子养成良好的习惯.为了帮助我的女儿改掉拖延的习惯,我借助AI制作了一本绘本,名为<小马历险记>,并为它配上了音乐和 ...

  3. ai如何旋转画布_「AI教程」使用AI制作3D立体文字效果

    今天macdown小编要通过AI制作一种3D立体字体,主要的知识点是混合工具的使用.Shift键.Alt键的灵活运用.3D旋转命令.投影效果的创建等,学会后可以应用在需要的设计中,比如海报设计,log ...

  4. ai的预览模式切换_AI字体制作,用AI制作创意阶梯式文字

    本篇教程通过AI制作一款创意阶梯式文字,教程中有很多知识点需要掌握,比如路径分割为网络,3D效果应用等,我们要利用他们创造出我们需要的文字出来,具体是如何制作的,我们通过教程一起来学习一下吧. 效果图 ...

  5. 怎么用ai做出适量插画_平面插画图文教程,如何用AI制作矢量人像插画

    原标题:平面插画图文教程,如何用AI制作矢量人像插画 平面插画图文教程,如何用AI制作矢量人像插画 下面品索教育就分享了一篇关于插画的图文教程,这里应用的软件是AI,教你如何用AI制作矢量人像插画,这 ...

  6. 造车失败后投身机器人和AI,我笑戴森太疯癫,戴森笑我看不穿

    热点追踪 / 深度探讨 / 实地探访 / 商务合作 提起戴森,读者们脑海里冒出来的,一定是吹风机.卷发棒.吸尘器等网红爆款家电. 这些极具未来感和时尚感的产品,有着远超于该类别平均水平的高价位,堪称是 ...

  7. ai怎么取消颗粒效果_怎么用AI制作粒子消散效果字体?

    怎么用AI制作粒子消散效果字体?,效果,粒子,字体,右键,矩形 怎么用AI制作粒子消散效果字体? 易采站长站,站长之家为您整理了怎么用AI制作粒子消散效果字体?的相关内容. 怎么用AI制作粒子消散效果 ...

  8. 使用 cocos creator 3.0 制作抽奖小游戏

    使用 cocos creator 3.0 制作抽奖小游戏 描述 一个抽奖小游戏demo, 点击 抽奖按钮 进行抽奖, 抽完奖后该结果置灰.下一次抽奖就会跳过已经抽过的奖项. 注意: 每次点击 抽奖按钮 ...

  9. 中国数字油画网 数字油画软件 照片转数字油画 ai制作数字油画

    案例 数字油画软件 照片转数字油画 ai制作数字油画 cdr制作数字油画 以下是案例 制作由 中国数字油画网 提供 访问网址 www.tuhuacn.com 作者:谭明刚 制作由 中国数字油画网 提供 ...

最新文章

  1. 机器学习-线性回归与梯度下降
  2. java中factory_JAVA工厂方法模式(Factory Method)
  3. 阿里云边缘云全新架构升级,助力CDN操控新体验
  4. 面对大规模系统工程,看Facebook如何处理故障排查(一)
  5. 华为服务器系统蓝屏,服务器主机蓝屏
  6. 【Webpack5 配置分包加载 多文件js/css打包 】
  7. Sphinx 文档例子
  8. 《Ray Tracing in One Weekend》——Chapter 7: Diffuse materials
  9. 百度云存储教程---免费建立自己的静态网站
  10. riskv的linux模拟环境,开启你RISC-V的开发之旅-RISC-V的linux模拟环境搭建整理和总结-EDA365电子论坛通信数码-人工智能-计算机-半导体-手机家电消费电子硬件门户网站...
  11. 【vue】ramda.js在vue中的使用
  12. python使用list方法,将迭代器转换为列表后,再次循环打印迭代器输出为空
  13. python修改桌面壁纸_轻松有趣的Python小案例,让电脑自动更换壁纸
  14. MBA-day21 假言推理-练习题
  15. 如何结束python程序_python程序结束
  16. win10系统如何进入BIOS
  17. 使用Telerik控件搭建Doubanfm频道部分
  18. NVIDIA驱动 XORG频繁崩溃
  19. 一些著名的软件都用什么语言编写?程序员都熟知这些软件!
  20. 赵小楼《天道》《遥远的救世主》深度解析(116)论天国的女人

热门文章

  1. 诺贝尔奖获得者平均年龄是多少?属于我们的时间好像不多了
  2. Unknown custom element: did you register the component correctly? For recursive compo
  3. RNA与DNA曾是一体?生命起源论或被颠覆
  4. 中国天气雷达行业市场供需与战略研究报告
  5. 考研政治——马克思原理唯物论之意识观
  6. linux系统打印机不兼容,linux系统下的打印机无法打印怎么解决?
  7. 自定义redisTemplate以及redisutils的封装使用
  8. hooper篮球意思_这些篮球术语都什么意思?
  9. BananaPi Wifi 连接
  10. 大学生书店网页设计制作 简单静态在线书店HTML网页作品 小说书籍网页作业成品 学生期末作业网站模板