关于FSM(有限状态机)的学习3---总结

来源:互联网 发布:java javascript 编辑:程序博客网 时间:2024/05/17 02:54

  1. 以下内容参照《unity3d 人工智能编程》--Aung Sithu Kyaw,Clifford Peters ,Thet Naing Swe编著</span>  

最近在研究此书,花费几天时间,略有收获,所以写下此编文章,计划是3章,这是第一章,受个人能力限制,这个只是我的粗陋之见。

首先贴下此书源码下载地址,http://hzbook.com/Books/8580.html,请大家尊重知识产权,如果有需要自行购买(非广告)。






之前原本就接触了一下有关人工智能在游戏中的应用的相关文章,大体来说是

巡逻,追逐,进攻这三个状态的切换,或者还可以加一个逃跑,或者是死亡后复活等等之类别的状态

只要是根据游戏制作者的想法,把游戏变得更丰富,更好玩,最主要的是能吸引玩家往里面消费,这个才是最重要的。

然而,当我接触到了《unity3d 人工智能编程》这一本书后,醍醐灌顶,大梦初醒,通过阅读此书,我了解到了有关编程设计的一些知识,前文

所讲述的FSM有限状态机的设计,是使用了工厂模式(由于知识有限,这里如果有错误,恳请指出),增加了耦合性,使得代码更容易修改,即在原来的基础上

能增加功能而不修改原有的代码



if (dist <= 200.0f)        {            //先判断距离,如果成立,就执行追逐,进攻等等的动作,如果有动画,同时播放动画
<span style="white-space:pre"><span style="white-space:pre"></span>        Quaternion targetRotation = Quaternion.LookRotation(destinationPos - npc.position);        npc.rotation = Quaternion.Slerp(npc.rotation, targetRotation, Time.deltaTime * curRotSpeed);        npc.Translate(Vector3.forward * Time.deltaTime * curSpeed)</span>
        }        else if (dist >= 300.0f)        {           //否则就执行其他动作        }

最后赋上大神 宣雨松 的关于AI的博客,有兴趣的可以去看看(请一定要去看,写的很好!)

http://www.xuanyusong.com/archives/1840

0 0