11.3 游戏AI的编程⽅法
在第11.1.2⼩节中,已经提到了有限状态机是AI编程的常⽤⽅法,那么本节将以AI设计为例,探讨有限状态机的编程思想。状态机的编程⽅法⼴泛应⽤于游戏框架设计、动画设计和AI设计,如第6章介绍的动画状态机就是⼀种典型的有限状态机。掌握状态机的思想⽅法对提⾼编程技能、解决实际问题⼤有裨益。
11.3.1 有限状态机的概念
有限状态机简称状态机,是表⽰有限个状态,以及在状态之间的转移和动作等⾏为的数学模型。状态机的要素有状态和状态转移两个。例如,第6章介绍的动画状态机就是⼀种⾮常典型的状态机,如图11-17所⽰。很明显,动画状态机最重要的属性就是节点和连线,其中每个节点都是⼀个动画⽚段(或动画融合树),⽽每根连线代表着可以从⼀个状态转移到另⼀个状态。
对动画来说,动画状态的转移是有条件的,⼀般是通过设定动画变量,使得动画播放完毕时能够跳转到另⼀个动画状态。其他编程逻辑也是⼀样,总要设计出⼀些必要的状态,并定义状态之间的转移条件,才能把⼀