节点类型

  • ControlNode是可以具有1到N个子节点的节点。一旦接收到ticktick可以传播到一个或多个子节点。
  • DecoratorNodesControlNode相似,但只能有一个子节点。
  • ActionNode是叶子且没有子节点。用户应该实现自己的ActionNode来执行实际的任务。
  • ConditionNodeActionNode一样,但是总是atomic【原子】synchronous【同步】,即它们不得返回RUNNING。它们不应更改系统的状态。

第一个ControlNode:Sequence[序列]

最基本且最常用的ControlNode:SequenceNode

ControlNode的子节点始终是有序的;执行顺序是从左到右。

简而言之:

  • 如果子节点返回SUCCESS,则tick下一个
  • 如果一个子节点返回FAILURE,则子节点不再去tick,并且该序列返回FAILURE
  • 如果所有子节点返回SUCCESS,则序列也返回SUCCESS

Decorators[装饰器]

根据DecoratorNode的类型可以取决该节点的目的:

  • 转换从子节点接收到的结果
  • 停止执行子节点
  • 根据Decorators的类型去重复的tick子节点

第二个ControlNode:Fallback[后备]

FallbackNodes (也称为“选择器Selectors”)是可以表达备用策略的节点,顾名思义,如果子节点返回FAILURE,下一步改怎么做。

按照顺序tick子节点,并:

  • 如果子节点返回FAILURE,则tick下一个。
  • 如果子节点返回SUCCESS,则不再tick任何子节点并且Fallback返回SUCCESS
  • 如果所有子节点返回FAILURE,则Fallback也返回FAILURE

原文

最新文章

  1. 安装yum
  2. 如何自己编写一个easyui插件续
  3. asihttprequest本机调试时正常,发布后闪退
  4. [Buzz.Today]2013.08.06
  5. alfresco 5.0 document
  6. qt 拖拽 修改大小(使用了nativeEvent和winEvent)
  7. ORACLE处理用户进程大剖析[阅读]
  8. mybatis取数据库为null的字段
  9. eclipse中的项目为什么无法添加到tomcat中?
  10. 1.写页面 2.css的继承属性有哪些 3.margin对布局的影响
  11. PHP实现中文字符串截取无乱码
  12. Solr实现 并集式、多值、复杂 过滤查询的权限【转】
  13. python学习笔记2-dict
  14. 用 Qt Creator 开发非 Qt 的 C/C++ 程序
  15. 20145221 《Java程序设计》第十周学习总结
  16. spring 添加controller返回值绑定
  17. Kail Linux渗透测试之测试工具Armitage
  18. Arduino I2C + 温湿度传感器AM2321
  19. Python 3基础教程32-正则
  20. 确保VDI顺利部署 试点项目是关键

热门文章

  1. Python中的sys.stdin和input、sys.stdout与print--附带讲解剑指offer42-连续子数组的最大和
  2. python 工具箱
  3. 前端HTML元素的类型名称
  4. 改善深层神经网络-week1编程题(GradientChecking)
  5. 第五次Alpha Scrum Meeting
  6. 如何用PADS进行PCB设计?这6步就够了
  7. 电脑cmd命令快速查看连接过的WIFI密码信息
  8. 洛谷 P4587 [FJOI2016]神秘数
  9. 并发编程从零开始(十一)-Atomic类
  10. .Net(c#)汉字和Unicode编码互相转换实例