COCOS敌人和AI制作
给宝宝做一个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制作相关推荐
- c++ ea 代码 生成_EA公司教AI制作游戏角色,行动流畅自然,全程无需人类介入
想开发出一款爆款游戏,是一件难度极高的事情,不仅要有精妙的内容设计,精致的光影效果,自然的动画建模,还要投入相当多的资金和时间.现在,美国游戏公司艺电(EA)正在与加拿大不列颠哥伦比亚大学(UBC)合 ...
- AI制作有声绘本《小马历险记》
最近,我正在准备一堂给家长AI的课程,其中有一节专门介绍如何利用AI帮助孩子养成良好的习惯.为了帮助我的女儿改掉拖延的习惯,我借助AI制作了一本绘本,名为<小马历险记>,并为它配上了音乐和 ...
- ai如何旋转画布_「AI教程」使用AI制作3D立体文字效果
今天macdown小编要通过AI制作一种3D立体字体,主要的知识点是混合工具的使用.Shift键.Alt键的灵活运用.3D旋转命令.投影效果的创建等,学会后可以应用在需要的设计中,比如海报设计,log ...
- ai的预览模式切换_AI字体制作,用AI制作创意阶梯式文字
本篇教程通过AI制作一款创意阶梯式文字,教程中有很多知识点需要掌握,比如路径分割为网络,3D效果应用等,我们要利用他们创造出我们需要的文字出来,具体是如何制作的,我们通过教程一起来学习一下吧. 效果图 ...
- 怎么用ai做出适量插画_平面插画图文教程,如何用AI制作矢量人像插画
原标题:平面插画图文教程,如何用AI制作矢量人像插画 平面插画图文教程,如何用AI制作矢量人像插画 下面品索教育就分享了一篇关于插画的图文教程,这里应用的软件是AI,教你如何用AI制作矢量人像插画,这 ...
- 造车失败后投身机器人和AI,我笑戴森太疯癫,戴森笑我看不穿
热点追踪 / 深度探讨 / 实地探访 / 商务合作 提起戴森,读者们脑海里冒出来的,一定是吹风机.卷发棒.吸尘器等网红爆款家电. 这些极具未来感和时尚感的产品,有着远超于该类别平均水平的高价位,堪称是 ...
- ai怎么取消颗粒效果_怎么用AI制作粒子消散效果字体?
怎么用AI制作粒子消散效果字体?,效果,粒子,字体,右键,矩形 怎么用AI制作粒子消散效果字体? 易采站长站,站长之家为您整理了怎么用AI制作粒子消散效果字体?的相关内容. 怎么用AI制作粒子消散效果 ...
- 使用 cocos creator 3.0 制作抽奖小游戏
使用 cocos creator 3.0 制作抽奖小游戏 描述 一个抽奖小游戏demo, 点击 抽奖按钮 进行抽奖, 抽完奖后该结果置灰.下一次抽奖就会跳过已经抽过的奖项. 注意: 每次点击 抽奖按钮 ...
- 中国数字油画网 数字油画软件 照片转数字油画 ai制作数字油画
案例 数字油画软件 照片转数字油画 ai制作数字油画 cdr制作数字油画 以下是案例 制作由 中国数字油画网 提供 访问网址 www.tuhuacn.com 作者:谭明刚 制作由 中国数字油画网 提供 ...
最新文章
- 机器学习-线性回归与梯度下降
- java中factory_JAVA工厂方法模式(Factory Method)
- 阿里云边缘云全新架构升级,助力CDN操控新体验
- 面对大规模系统工程,看Facebook如何处理故障排查(一)
- 华为服务器系统蓝屏,服务器主机蓝屏
- 【Webpack5 配置分包加载 多文件js/css打包 】
- Sphinx 文档例子
- 《Ray Tracing in One Weekend》——Chapter 7: Diffuse materials
- 百度云存储教程---免费建立自己的静态网站
- riskv的linux模拟环境,开启你RISC-V的开发之旅-RISC-V的linux模拟环境搭建整理和总结-EDA365电子论坛通信数码-人工智能-计算机-半导体-手机家电消费电子硬件门户网站...
- 【vue】ramda.js在vue中的使用
- python使用list方法,将迭代器转换为列表后,再次循环打印迭代器输出为空
- python修改桌面壁纸_轻松有趣的Python小案例,让电脑自动更换壁纸
- MBA-day21 假言推理-练习题
- 如何结束python程序_python程序结束
- win10系统如何进入BIOS
- 使用Telerik控件搭建Doubanfm频道部分
- NVIDIA驱动 XORG频繁崩溃
- 一些著名的软件都用什么语言编写?程序员都熟知这些软件!
- 赵小楼《天道》《遥远的救世主》深度解析(116)论天国的女人
热门文章
- 诺贝尔奖获得者平均年龄是多少?属于我们的时间好像不多了
- Unknown custom element: did you register the component correctly? For recursive compo
- RNA与DNA曾是一体?生命起源论或被颠覆
- 中国天气雷达行业市场供需与战略研究报告
- 考研政治——马克思原理唯物论之意识观
- linux系统打印机不兼容,linux系统下的打印机无法打印怎么解决?
- 自定义redisTemplate以及redisutils的封装使用
- hooper篮球意思_这些篮球术语都什么意思?
- BananaPi Wifi 连接
- 大学生书店网页设计制作 简单静态在线书店HTML网页作品 小说书籍网页作业成品 学生期末作业网站模板