状态机和命令模式的融合

一:有限状态机 有限状态机是构成游戏机制的核心要素,对于主角玩家,需要基于状态机操控,对于AI控制单位,需要状态机来控制。 状态和状态机的设计可以参考这里

状态设计: http://git.oschina.net/liyonghelpme/rongYaoDaLuCode/blob/master/com/liyong/AIState.cs?dir=0&filepath=com%2Fliyong%2FAIState.cs&oid=c516631f7bb3eb9fc96d5e43c17f4ff9afc430cf&sha=bca220d4f0a01b2e201440556ea8968c3d0aad91

状态机设计: http://git.oschina.net/liyonghelpme/rongYaoDaLuCode/blob/master/com/liyong/StateMachine.cs?dir=0&filepath=com%2Fliyong%2FStateMachine.cs&oid=cf02c0448c7b931666b07f32ba2b39873debebbc&sha=bca220d4f0a01b2e201440556ea8968c3d0aad91

一个状态机中的某个状态可以有多种实现,通过判定前置条件,来选择合适的状态。

二:命令模式 命令类似于一种小语言,用于描述和游戏业务相关的逻辑,一种简单的命令设计,通过空格符号来分割不同的命令单元。 例如 "op arg1 arg2" 这样一个字符串,通过在命令缓冲区中存放这些字符串,来序列化业务逻辑。

一个命令缓冲区的设计: http://git.oschina.net/liyonghelpme/rongYaoDaLuCode/blob/master/com/liyong/CommandHandler.cs?dir=0&filepath=com%2Fliyong%2FCommandHandler.cs&oid=06917459889661fbbb907eee5b3d36cdd09d7f68&sha=bca220d4f0a01b2e201440556ea8968c3d0aad91

三:融合二者: 通过状态机向命令缓冲区注册处理函数,当有新的命令压入到缓冲区的时候,就会调用状态机的处理函数,根据新的命令可以执行切换状态等一系列动作。

转载于:https://my.oschina.net/u/186074/blog/425049

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值