博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
行为树 学习笔记
阅读量:7120 次
发布时间:2019-06-28

本文共 1322 字,大约阅读时间需要 4 分钟。

SuccessFailureRunningIdleHalted节点的运行状态有成功 , 失败  正在运行中 还没有开始运行 和 暂停节点返回状态有 立刻返回失败和所有的子节点返回失败人后再返回失败.立即返回成功和所有子节点都返回成功后返回成功
vim每次保存后自动去掉行末的空格 加入.vimrc  然后source 一下即可.autocmd FileType c,cc,cpp,python,ruby,java,sh,html,javascript autocmd BufWritePre 
:%s/\s\+$//e

关键词在展开之前,我们先定义几个关键词(基本都以BT作为前缀...是Behavior Tree之意,别误会了...),会在下面的框架用到。BTNode:所有节点的base class。定义了一些节点的基本功能,并提供一些可继承的函数。BTAction:行为节点,继承于BTNode。具体的游戏逻辑应该放在这个节点里面。BTPrecondition:节点的准入条件,每一个BTNode都会有一个。具体的游戏逻辑判断可以继承于它。BTPrioritySelector:Priority Selector逻辑节点,继承于BTNode。每次执行,先有序地遍历子节点,然后执行符合准入条件的第一个子结点。可以看作是根据条件来选择一个子结点的选择器。BTSequence:Sequence逻辑节点,继承于BTNode。每次执行,有序地执行各个子结点,当一个子结点结束后才执行下一个。严格按照节点A、B、C的顺序执行,当最后的行为C结束后,BTSequence结束。BTParallel:Parallel逻辑节点,继承于BTNode。同时执行各个子结点。每当任一子结点的准入条件失败,它就不会执行。BTParallelFlexible:Parallel的一个变异,继承于BTNode。同时执行各个子节点。当所有子结点的准入条件都失败,它就不会执行。BTTree:将所有节点组合起来的地方。Database:黑板,一个存放共享数据的地方,可以看成是一个Key-Value的字典。为什么需要黑板呢?因为设计良好的行为逻辑,应该是独立的,可以在行为树的任何位置部署的。也就是说行为A和行为B并没有直接的沟通方法。黑板的作用就是作为一个行为树的“数据库”,让各个行为节点都可以储存数据进去,供感兴趣的行为节点利用。(同时,在Unity3d的语境下,Database继承MonoBehavior,可以提供各种Component给节点使用。)UML类图:
序列(Sequence)节点:顺序执行所有子节点返回成功,如果某个子节点失败返回失败。循环(Loop)节点:循环执行子节点到指定次数后返回成功,如果循环次数为-1,则无限循环。条件(Condition)节点:根据条件的比较结果,返回成功或失败。动作(Action)节点:根据动作结果返回成功,失败,或运行。等待(Wait)节点:当指定的时间过去后返回成功。

转载于:https://www.cnblogs.com/eat-too-much/p/7197401.html

你可能感兴趣的文章
易宝典文章——用ISA 2006标准版发布Exchange 2010的OWA系列之生成Exchange证书申请文件...
查看>>
shell 读取键盘输入
查看>>
Linux静态库和动态库
查看>>
Spring中管理Bean依赖注入之后和Bean销毁之前的行为
查看>>
vmware 虚拟机网络
查看>>
JAVA基本程序设计结构
查看>>
UNIX 高手的 10 个习惯
查看>>
Basics of Memory Addresses in C
查看>>
加密解密
查看>>
AIX 卷组管理
查看>>
vsftpd基于本地用户和mysql认证配置
查看>>
动态代理简单测试
查看>>
Linux下切分Tomcat的catalina.out日志文件
查看>>
XSS***的介绍及防御
查看>>
《冈仁波齐》让我看到的不止是信仰,还有不忘初心
查看>>
Apache配置域名301跳转
查看>>
谈谈源码中的SparseArray
查看>>
12.24作业
查看>>
压力测试
查看>>
java异步发送邮件
查看>>