@H_301_0@ 对于quick中的状态机是如何实现的咱们先不去了解,首先看看如何去使用它。 @H_301_0@ 总结起来,如果让一个类拥有状态机,主要有两步: @H_301_0@ 1.创建状态机对象 @H_301_0@ 2.初始化状态机,主要包括事件和回调函数 @H_301_0@
@H_301_0@ 1.创建状态机组件 @H_301_0@
- self.fsm={}
- cc.GameObject.extend(self.fsm):addComponent("components.behavior.StateMachine"):exportMethods()
这样就创建了一个状态机对象,接下来我们要对其初始化,其实也就是设置各个状态的逻辑。 @H_301_0@ @H_301_0@
@H_301_0@ 2.初始化状态机(设置状态逻辑) @H_301_0@ 设置状态逻辑是重写setupState方法,这其中有这么几个字段参数, @H_301_0@
- initial:状态机的初始状态
- terminal (final):结束状态
- events:状态发生转变时对应的事件
- callbacks:发生转变时的回调函数
@H_301_0@ 先看events,在events中需要分清楚“事件”和“状态”,events采用table结构,例如我们来写一个 @H_301_0@
copy