标签:
具体思路如下:
- 创建一个基类(对应demo中的FsmState),具备Enter,Excute,Exit三个主要函数以及状态持有对象, 作用于每一种状态的进入,执行以及退出;
- 创建一个状态机(对应demo中的FsmStateMachine),声明基类的三种状态以及状态持有对象,定义构造函数初始化状态持有对象,当每一次状态做出改变时都要声明状态持有的新对象(因为每一种状态都是一个class);
- 创建一个状态载体(对应demo中的CubeAI),实例化状态机(FsmStateMachine)并传递(this)完成状态持有对象声明;实例化一个字典用于存放状态<状态枚举,基类>; 根据对实例化的状态机传递字典键值对改变状态;
- 创建各种状态的class,继承自基类(FsmState)并复写Enter,Excute,Exit三个函数实现各自状态的业务逻辑;
demoURL:
http://www.manew.com/thread-89796-1-1.html
标签:
原文地址:http://www.cnblogs.com/hellozzz/p/5592546.html