当前位置: 首页 > news >正文

quick 状态机StateMachine

function Player:addStateMachine()
    self.fsm_ = {}
    cc.GameObject.extend(self.fsm_)
    :addComponent("components.behavior.StateMachine")
    :exportMethods()

    self.fsm_:setupState({
        -- 初始状态
        initial = "idle",

        -- 事件和状态转换
        events = {
            -- t1:clickScreen; t2:clickEnemy; t3:beKilled; t4:stop
            {name = "clickScreen", from = {"idle", "attack"},   to = "walk" },
            {name = "clickEnemy",  from = {"idle", "walk"},  to = "attack"},
            {name = "beKilled", from = {"idle", "walk", "attack", "hit"},  to = "dead"},
            {name = "beHit", from = {"idle", "walk", "attack"}, to = "hit"},
            {name = "stop", from = {"walk", "attack", "hit"}, to = "idle"},
        },

        -- 状态转变后的回调
        callbacks = {
            onidle = function (event) self:idle() end,
            onattack = function (event) self:attackEnemy() end,
            onhit = function (event) self:hit() end,
            ondead = function (event) self:dead() end
        },
    })

end

 那我发一个clickScene的事件,它判断如果是idle attack状态的话就执行walk状态 跟if else一样 只是系统帮你写了if else了
 用事件来驱动的状态迁移 
 


转载于:https://www.cnblogs.com/as3lib/p/4108121.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 每日一题(开开森森学前端之this)
  • 读取XML文件
  • [数]来自亮亮OJ的五道数学题
  • shell脚本简单切割字符串
  • Java线程安全和锁Synchronized概念
  • C#操纵Excel,此工作薄包含嵌入对象,Office 2007的设定方法
  • Gym 101128J Saint John Festival(凸包 + 二分判点和凸包关系)题解
  • chrome浏览器常用快捷键
  • openshift 使用curl命令访问apiserver
  • 服务器指示灯说明
  • 单兵虚拟训练仿真系统
  • css笔记04
  • Jmeter察看结果树的响应数据中的中文显示乱码问题处理
  • HTML5 details 标签
  • 重学前端-CSS篇3-颜色、单位、字体、命名规范、书写顺序
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • canvas 五子棋游戏
  • Druid 在有赞的实践
  • IP路由与转发
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JAVA 学习IO流
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java多态
  • magento 货币换算
  • Python中eval与exec的使用及区别
  • vue自定义指令实现v-tap插件
  • Webpack 4 学习01(基础配置)
  • 记录:CentOS7.2配置LNMP环境记录
  • 数组大概知多少
  • 小程序开发中的那些坑
  • 源码安装memcached和php memcache扩展
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • Semaphore
  • 阿里云ACE认证之理解CDN技术
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • (void) (_x == _y)的作用
  • (办公)springboot配置aop处理请求.
  • (备忘)Java Map 遍历
  • (二)c52学习之旅-简单了解单片机
  • (二)丶RabbitMQ的六大核心
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (顺序)容器的好伴侣 --- 容器适配器
  • (一)、python程序--模拟电脑鼠走迷宫
  • (一)SvelteKit教程:hello world
  • (一)基于IDEA的JAVA基础12
  • (原創) 未来三学期想要修的课 (日記)
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET 动态调用WebService + WSE + UsernameToken
  • .net 后台导出excel ,word