行为树(BT)笔记(三):入门教程

BehaviorTree.CPP是一个C ++库,可以轻松集成到您喜欢的分布式中间件中,例如ROSSmartSoft

您还可以将其静态链接到您的应用程序(例如游戏)。

您需要先了解一些主要概念。

节点VS树

用户必须创建自己的ActionNodes和ConditionNodes(LeafNodes),这个库可以帮助您轻松地将它们组合成树。

将LeafNodes视为构建复杂系统所需的构建块。

根据定义,您的自定义节点是(或应该)高度可重用的。因此,一开始可能需要一些包装接口来调整遗传代码。

tick()回调

任何TreeNode都可以看作是一种调用回调的机制,即 运行一段代码。这个回调的作用取决于你。

在以下大多数示例中,我们的动作仅在休眠屏幕上打印消息一段时间以模拟长时间计算。

继承VS依赖注入

要创建自定义TreeNode,您应该从适当的类继承。

例如,要创建自己的同步Action,您应该从类SyncActionNode继承。

或者,我们提供了一种机制来创建TreeNode,将 函数指针传递给包装器(依赖注入)。

这种方法减少了代码中样板的数量; 作为参考,请查看第一个教程和描述非侵入式与遗传代码集成的教程

NodeParameters

NodeParameters在概念上类似于函数的参数。

它们在实例化树时静态传递。

它们表示为键/值对的列表,其中键和值都是字符串。

这并不奇怪,因为NodeParameters通常是从文件中解析的。

该库提供了一些方法和实用程序函数,可以将值从字符串正确转换为所需的C ++类型。

使用XML格式在运行时加载树

尽管库是用C ++编写的,但树本身可以在运行时组合,从文件中读取树结构。

这里详细描述了XML格式。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是《Java基础入门第三版》的详细笔记: 1. Java语言特点 Java语言的特点有:简单易学、面向对象、平台无关性、安全性、高性能。 2. 基本数据类型 Java语言有8种基本数据类型:byte、short、int、long、float、double、char、boolean。 3. 运算符 Java语言提供的运算符有:算术运算符、关系运算符、逻辑运算符、位运算符。 4. 控制语句 Java语言提供的控制语句有:if语句、switch语句、for循环语句、while循环语句、do-while循环语句、break语句、continue语句。 5. 面向对象编程 Java是一种面向对象的编程语言,它支持类、对象、封装、继承和多态性等特性。 6. 异常处理 Java语言提供了异常处理机制,它可以帮助开发人员更好地处理程序中的错误和异常。Java语言中的异常处理包括:try-catch语句、finally语句、throws语句、throw语句。 7. 常用类库 Java语言提供了丰富的类库,常用的类库有:Math类、String类、StringBuffer和StringBuilder类、Date和Calendar类、File类和IO流等。 8. 数组 Java语言提供了数组来存储同种类型数据的集合,可以使用一维数组、二维数组等。 9. 字符串 Java语言中的字符串是一个类,它提供了很多方法来处理字符串,如字符串连接、截取、替换、比较等。 10. 输入输出 Java语言提供了IO流来处理输入输出,其中包括字节流和字符流,可以读取文件、网络等各种数据源。 以上就是《Java基础入门第三版》的详细笔记。希望对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值