游戏中,需要控制人物状态的时候,可以采用Switch Case 方法。然而当出现复杂的状态或者需要添加新的状态时,Switch Case方法将会非常的繁琐。而使用FSM(有限状态机),可以轻松解决以上问题。
以下是我个人的理解,有不足或者错误的地方,还望不吝赐教。
有限状态机思想:通过传递不同的状态,控制当前人物的行为。
设计思路:
1、创建状态基类,定义基类中的方法,包括状态进入,状态执行,状态退出。
2、创建状态管理类,定义管理方法,包括添加状态,设置状态,更新状态,移除状态。
3、定义状态枚举。
4、状态类,继承状态基类,实现基类中的方法,以及当前方法中所需要完成的行为。
代码如下:
1、状态基类
2、状态机
3、使用
(1)状态
(2) 状态机拥有者注册