在写之前,先对昨天寻路插件再做一些补充,因为该插件不是很完善,所以当我发现有不能满足需求的时候,就会试图更改源代码,或增加接口来符合我的需求。

昨天补充了一条是 自身转向代码,今天补充另外一条,是及时改变路向。我们发现原始插件改变路向,必须要等角色到达目标点才能再做改变,我们在ai中希望是,当目标点改变,角色在半道就要改变新方向。

好了,解决该问题的方法很简单,只需要如下方法

    public void OnStopFind()
{
m_bNavRequestCompleted = true;
}

这行代码 在 目标寻路、随机寻路、跟随寻路 这三个类都添加进去,就可以了。

下面继续研究 ai 人工智能 。

ai 智能等级:

目前定义五级,分别如下:

固定点 固定方向 发现碰撞 射击! 这种好比是 大门前两个喷火龙,当有人 踩到陷阱,就发射。智商太低为1,我们找到规律基本无视它.

固定点 360° 方向,发现碰撞 射击! 这类 经常出现在 塔防中,比如箭塔炮塔,他们不会动,但有敌人经过 射程内 都会不停射击。 智商定义2。

移动点 360°,发现碰撞 射击,发现碰撞远离 跟踪。 这类 大部分 都是 小兵,如红警 帝国时代 里面的 小兵,平时站在不动,但有敌人来 就会 跟着并射击,直到打死对方。当然如果敌人 跑得太快 他们也不会一直跟踪。所以 智商只有3.

移动点 360°,发现碰撞射击,发现有敌人,主动搜索并跟踪。 这类 就是 将领 级别了。玩过部落战争的朋友 都知道,兵一放到 敌人阵营,就会自己主动攻击,他们不需要你告诉他 打谁,他会自己安排 打人流程。所以 这类智商 比较高 ,同时也是大家都喜欢玩 这类游戏的原因,智商 定义 4.

移动点 360°,发现碰撞射击,发现有敌人,研究其 是否打的过,如果难度高,指挥 其他同伙进攻。这类智商是最高的,目前我没有发现有哪类游戏中有,好比一个兵,他们会主动找敌人,他们会选择好打的先打,他们发现难打的,会先停下来 等待同伴一起上。 智商定义 5.

下面的 章节 我将开始以这 五级的智商来做 ai。之前为何选择SimplePath 也是看中了 他可以做到 第五级 的智商。

AI 人工智能 探索 (四)的更多相关文章

  1. AI 人工智能 探索 (七)

    我简单画了一幅图,来讲下 ai 中的设计模式.图形中的这些人物,我想大家都能看的明白. 当 盗贼出现,人们发现了他们,就 呼叫 主类,然后主类再  通知 下面对应的管理局,然后管理局再 分配人手过去 ...

  2. AI 人工智能 探索 (六)

    这次我为 角色 attribute 添加了 多个属性 其中 att 是 好人 坏人 等属性, 显然 数字不同 就要打起来. grade 是智商属性 ,今天先做了 3的智商.也就是小兵智商.碰到就打 逃 ...

  3. AI 人工智能 探索 (五)

    我们把做好的 角色 拖到 内存池,如图所示,这样我们可以动态生成角色并给予他 寻路目标. //逗留碰撞 void OnTriggerStay(Collider other) { if (other.t ...

  4. AI 人工智能 探索 (三)

    三类子弹的设计 using UnityEngine; using System.Collections; public class AI : AssembleModel { private Hasht ...

  5. AI 人工智能 探索 (二)

    完整被动技能代码 using UnityEngine; using System.Collections; public class AI : MonoBehaviour { private Hash ...

  6. AI 人工智能 探索 (十)

    呼叫事件图形结构如下 蓝色代表 警察局 红色代表警察 黄色代表 死亡人 蓝色球代表呼救人 黑色代表 敌人 警察目标是 攻击 黑色人,但 路中 会碰到 黄色人,如果警察有 救人功能 则会先救人去医院再看 ...

  7. AI 人工智能 探索 (九)

    链接:http://pan.baidu.com/s/1c0AM3g0 密码:uccw 今天补充 创建物体 移动物体 ,当点击创建后 ,会出来一个 上图的 ui,他跟随 物体,当你把物体拖动到 指定的地 ...

  8. AI 人工智能 探索 (八)

    绑定下,用来释放内存 布局框架.链接:http://pan.baidu.com/s/1eQzSXZO 密码:25ir 这次 我采用 ngui 来设定界面.除工具栏模块外,其他各类ui模块都是 内存池动 ...

  9. AI 人工智能 探索 (一)

    碰撞检测 //逗留碰撞 void OnTriggerStay (Collider other) { if (other.transform.name == name) { //检测距离 //根据距离 ...

随机推荐

  1. JQ N级导航

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. css样式的部分拓展, NuMber对象、 BoM、 DoM对象的模型的间述,ing...

    css部分代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...

  3. UIScrollView 加载多个view view还可以交换顺序(2)

    在上的代码中 UIview都在一个页面 要是每一个view对应一个页面 操作每一个view代码都在viewcontroller里面就会很乱,那么我们就将view重新做一下 创建想要的页面继承与view ...

  4. APP测试--功能测试

    1.1 了解需求 这一点,不但是功能测试,是所有测试都需要的第1步.通过需求文档,与产品经理的沟通,与开发的沟通,用户的使用习惯等各方法,了解APP的需求. 1.2 编写测试用例 当然之前可能是测试计 ...

  5. PHP中require和include的区别

    include()与require()的功能相同 include(include_once) 与 require(require_once)都是把把包含的文件代码读入到指定位置来,但是二者再用法上有区 ...

  6. ValueStack背后的OGNL表达式

    原文地址:http://blog.csdn.net/li_tengfei/archive/2010/12/25/6098134.aspx 前言: Strut2的Action类通过属性可以获得所有相关的 ...

  7. caogao

    https://css-tricks.com/ 在safari浏览器中添加transform规则,如果没有效果,把该规则的原始元素以块状显示 http://webdesignerwall.com/tr ...

  8. 典型的DIV+CSS布局——左中右版式

    [效果] [HTML] <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Def ...

  9. Elasticsearch Java虚拟机配置详解(转)

    引言: 今天,事情终于发生了.Java6(Mustang),是2006年早些时候出来的,至今仍然应用在众多生产环境中,现在终于走到了尽头.已经没有什么理由阻止迁移到Java7(Dolphin)上了. ...

  10. MFC中修改默认启动对话框方法

    // CMyAppEApp 初始化 BOOL CMyAppEApp::InitInstance(){// 如果一个运行在 Windows XP 上的应用程序清单指定要// 使用 ComCtl32.dl ...