quick-cocos2d-x游戏开发【14】——StateMachine状态机

本文介绍了在quick-cocos2d-x中如何利用StateMachine进行游戏开发,通过设置初始状态、事件和回调函数简化角色状态管理。强调了events和callbacks的重要性,并详细解析了各种回调函数的作用,如onbeforeEVENT、onleaveSTATE等。
摘要由CSDN通过智能技术生成

状态机在quick中是一个亮点,如果我们做一款RPG游戏,一个角色一般会拥有idle,attack,walk,run,death这些状态,如果游戏角色的状态采用分支条件判断的话,会造成非常庞大而难以维护,但一旦使用了状态机这种模式,就会显得简单方便。


对于quick中的状态机是如何实现的咱们先不去了解,首先看看如何去使用它。

总结起来,如果让一个类拥有状态机,主要有两步:

1.创建状态机对象

2.初始化状态机,主要包括事件和回调函数


1.创建状态机组件

self.fsm = {}
cc.GameObject.extend(self.fsm):addComponent("components.behavior.StateMachine"):exportMethods()

这样就创建了一个状态机对象,接下来我们要对其初始化,其实也就是设置各个状态的逻辑。


2.初始化状态机(设置状态逻辑)

设置状态逻辑是重写setupState方法,这其中有这么几个字段参数,

  • initial:状态机的初始状态
  • terminal (final):结束状态
  • events:状态发生转变时对应的事件
  • callbacks:发生转变时的回调函数

一般我们会设置initial,events和callbacks这三个。


先看events,在events中需要分清楚“事件”和“状态”,events采用table结构,例如我们来写一个

events = {
      {name = "move", from = {"idle", "jump"}, to = "walk"},
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值