AI 人工智能 探索 (四)
在写之前,先对昨天寻路插件再做一些补充,因为该插件不是很完善,所以当我发现有不能满足需求的时候,就会试图更改源代码,或增加接口来符合我的需求。
昨天补充了一条是 自身转向代码,今天补充另外一条,是及时改变路向。我们发现原始插件改变路向,必须要等角色到达目标点才能再做改变,我们在ai中希望是,当目标点改变,角色在半道就要改变新方向。
好了,解决该问题的方法很简单,只需要如下方法
public void OnStopFind()
{
m_bNavRequestCompleted = true;
}
这行代码 在 目标寻路、随机寻路、跟随寻路 这三个类都添加进去,就可以了。
下面继续研究 ai 人工智能 。
ai 智能等级:
目前定义五级,分别如下:
固定点 固定方向 发现碰撞 射击! 这种好比是 大门前两个喷火龙,当有人 踩到陷阱,就发射。智商太低为1,我们找到规律基本无视它.
固定点 360° 方向,发现碰撞 射击! 这类 经常出现在 塔防中,比如箭塔炮塔,他们不会动,但有敌人经过 射程内 都会不停射击。 智商定义2。
移动点 360°,发现碰撞 射击,发现碰撞远离 跟踪。 这类 大部分 都是 小兵,如红警 帝国时代 里面的 小兵,平时站在不动,但有敌人来 就会 跟着并射击,直到打死对方。当然如果敌人 跑得太快 他们也不会一直跟踪。所以 智商只有3.
移动点 360°,发现碰撞射击,发现有敌人,主动搜索并跟踪。 这类 就是 将领 级别了。玩过部落战争的朋友 都知道,兵一放到 敌人阵营,就会自己主动攻击,他们不需要你告诉他 打谁,他会自己安排 打人流程。所以 这类智商 比较高 ,同时也是大家都喜欢玩 这类游戏的原因,智商 定义 4.
移动点 360°,发现碰撞射击,发现有敌人,研究其 是否打的过,如果难度高,指挥 其他同伙进攻。这类智商是最高的,目前我没有发现有哪类游戏中有,好比一个兵,他们会主动找敌人,他们会选择好打的先打,他们发现难打的,会先停下来 等待同伴一起上。 智商定义 5.
下面的 章节 我将开始以这 五级的智商来做 ai。之前为何选择SimplePath 也是看中了 他可以做到 第五级 的智商。
AI 人工智能 探索 (四)的更多相关文章
- AI 人工智能 探索 (七)
我简单画了一幅图,来讲下 ai 中的设计模式.图形中的这些人物,我想大家都能看的明白. 当 盗贼出现,人们发现了他们,就 呼叫 主类,然后主类再 通知 下面对应的管理局,然后管理局再 分配人手过去 ...
- AI 人工智能 探索 (六)
这次我为 角色 attribute 添加了 多个属性 其中 att 是 好人 坏人 等属性, 显然 数字不同 就要打起来. grade 是智商属性 ,今天先做了 3的智商.也就是小兵智商.碰到就打 逃 ...
- AI 人工智能 探索 (五)
我们把做好的 角色 拖到 内存池,如图所示,这样我们可以动态生成角色并给予他 寻路目标. //逗留碰撞 void OnTriggerStay(Collider other) { if (other.t ...
- AI 人工智能 探索 (三)
三类子弹的设计 using UnityEngine; using System.Collections; public class AI : AssembleModel { private Hasht ...
- AI 人工智能 探索 (二)
完整被动技能代码 using UnityEngine; using System.Collections; public class AI : MonoBehaviour { private Hash ...
- AI 人工智能 探索 (十)
呼叫事件图形结构如下 蓝色代表 警察局 红色代表警察 黄色代表 死亡人 蓝色球代表呼救人 黑色代表 敌人 警察目标是 攻击 黑色人,但 路中 会碰到 黄色人,如果警察有 救人功能 则会先救人去医院再看 ...
- AI 人工智能 探索 (九)
链接:http://pan.baidu.com/s/1c0AM3g0 密码:uccw 今天补充 创建物体 移动物体 ,当点击创建后 ,会出来一个 上图的 ui,他跟随 物体,当你把物体拖动到 指定的地 ...
- AI 人工智能 探索 (八)
绑定下,用来释放内存 布局框架.链接:http://pan.baidu.com/s/1eQzSXZO 密码:25ir 这次 我采用 ngui 来设定界面.除工具栏模块外,其他各类ui模块都是 内存池动 ...
- AI 人工智能 探索 (一)
碰撞检测 //逗留碰撞 void OnTriggerStay (Collider other) { if (other.transform.name == name) { //检测距离 //根据距离 ...
随机推荐
- json 和 数组的区别
json是javascript中的一种数据格式,类似于数组,但又不同于数组,区别在于下标: 例如,var obj=[a:15,b:10,c:3,d:8]: //这是json的写法 var arr=[ ...
- digitalocean优惠码30美元1G内存VPS免费使用两个月
著名的云主机服务商CloudWays送福利啦!CloudWays是一家云主机网站服务商,与Digitalocean和亚马逊AWS开展合作,新用户注册验证手机即可赠送价值30美元的免费VPS主机. 申请 ...
- tomcat 7 启动超时设置。。。实在太隐蔽了
打开Tomcat,选择 Window->Show View->Servers,在主窗口下的窗口中的Servers标签栏鼠标左键双击tomcat服务器名,例如 Tomcat v7.0 Ser ...
- 背包问题matlab程序
clearclca=0.95k=[5;10;13;4;3;11;13;10;8;16;7;4];k=-k;d=[2;5;18;3;2;5;10;4;11;7;14;6];restriction=46; ...
- Javascript的精华
一.语法 JS只有一个数字类型,64位浮点数,所以1和1.0是相同的.为什么这么设计:防止短整型的溢出. 二.对象 1.通常将一个对象的值赋给另一个变量的赋值方法 if(car.name!=null) ...
- validator验证
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- Zend Studio配合Xdebug调试
以下配置均在windows环境下. 1.下载xdebug 使用phpinfo()查看当前php的版本信息: 到xdebug下载页面下载对应的xdebug版本: 将解压出的php_xdebug-2. ...
- Linux下利用nc命令来监控检测服务器的端口使用情况(转载)
最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉 ...
- Ubuntu基本命令--apt, dpkg
一.Ubuntu中软件安装方法 1.APT方式 (1)普通安装:apt-get install softname1 softname2 …; (2)修复安装:apt-get -f install so ...
- JavaScript join() 方法
http://www.w3school.com.cn/jsref/jsref_shift.asp JavaScript Array 对象 定义和用法 join() 方法用于把数组中的所有元素放入一个字 ...