有限状态机(FSM)是表示有限个状态及在这些状态之间的转移和动作等行为的数学模型。在计算机领域有着广泛的应用。通常FSM包含几个要素:状态的管理、状态的监控、状态的触发、状态触发后引发的动作。
状态通常用于组织和表示着执行流,在游戏编码中可以很好的实现AI(npc)。例如,在一个对打类的游戏中,可以使用一个FSM,用每一个状态表示一个动作,如攻击或规避:
一个FSM可以已图片的方式展现,节点表示状态和边界表示转换。每个边上都有一个标签信息表示转换的条件,例如上图中玩家在附近的标签表明当玩家在附近附近时当前状态将从漫步状态转换到攻击状态。
蚂蚁搬家的例子,如果蚂蚁在发现树叶后遇到鼠标光标不逃离的话,图片和源码可以以下面的方式简单的实现: