一个简单确有用的有限状态机(FSM) in c++
原文:http://www.frozax.com/blog/2012/10/simple-useful-finite-state-machine-fsm-c/
我写了一个有限状态机的模板,因为我要写不同的FSM
1.状态用枚举来代替(便于调试)
2.要运行FSM,只需要setState和updateState(float delta_time)即可
3.用GetState来获取当前状态
4.许多转换都基于定时,因此我实现了方法GetTimeInCurState()
5.执行具体的action在这些方法内BeginState EndState UpdateState
class ObjectUsingFSM: public fgFSM<EState>{public: // ... void UpdateState( EState t ); void BeginState( EState t ); void EndState( EState t ); // ...};该机,结束语:
你可以在你的项目当中免费使用这些代码,这是非常简单又常用的,另外你可以在以后根据需要在在EndState()里面加入GetPrviousState()
GetNextState()等等。。。