什么是状态机?

有限状态机是一种数学模型,根据一组特定的可用输入来表示不同的“状态”。 该模型一次只能以一种状态存在,并且外部输入将导致发生过渡,通过该过渡模型可以切换到另一种输入。

一个例子是交通信号灯。 这些可以抽象为简单的三态机:绿色,黄色和红色。 可以将默认状态分配为绿色,仅当传感器在垂直道路上(外部输入)接车时才会转变为绿色。 然后,模型将转变为黄色达预定的秒数,并自动转变为红色。 同样,红色在给定传感器反馈后变为黄色,然后变为绿色。

在游戏设计中,经常使用状态机来为各种敌人创建AI。 这是有道理的,因为敌人经常遵循预先规定的动作:保持闲置,进攻,跟随玩家,逃跑等。通过遵循有限状态机的设计原理,AI设计实际上变得容易得多。 对于我的游戏,我想创建一个悬停无人机,以在玩家进入附近时攻击玩家。 因此,它的默认状态是空闲,或者可能连接到天花板。 当玩家进入视野并足够接近(外部输入)时,它会转换为攻击,在这种攻击中,尝试与玩家保持稳定的距离并向玩家射击。 就是这样-只有两个状态可以描述我的悬停无人机敌人的行动。

虽然使用状态机似乎并不立即有用,但通过这样做,转换也可以吸引对动画师更改,声音效果和更简洁的代码构造的调用,从而可以更快地实现整个过程。 此外,此设计过程支持复杂得多的AI,例如老板敌人,可能有多个阶段,因此有许多状态。 通过转换和状态图来控制所有这些,有助于使所述AI的创建易于管理。