状态机(fsm)是一个有向图,由一组节点和一组相应的转移函数组成,通俗一点讲,它是一个事件驱动系统的模型,这个模型由有限数目的状态,若干输入和状态与状态之间转换的规则组成。在某一时刻,有一个或一组状态是FSM的当前状态,FSM接收输入事件并根据转换规则,将当前状态转为新的状态。正是由于这三个元素的组合,使得FSM具备了自己的行为特点。在游戏开发中,FSM被用来实现人工智能的决策过程,控制游戏对象的行为。(原文链接 : https://blog.csdn.net/turkeyzhou/article/details/7695813)。
白鹭中简单状态机实现:
例如一辆汽车在马路上行走,它会有很多的状态,最简单的是向左走和向右走这两种状态,这时候我们需要申请一个number类型的数组,然后通过switch case 、 if else来实现,具体代码如下:
1.申请:public m:number[];//0代表向左走,1代表向右走
2.初始化:this.m = [] ;
3.实现:
switch(this.m[])
{
case 0:
this.car.x -= 20 ;//汽车向左走
break ;
case 1:
this.car.x += 20 ;//汽车向右走
break ;
}