NodeCanvas实战案例,NodeCanvas——行为树节点介绍
nodecanvas,最近不少朋友在找NodeCanvas——行为树节点介绍的相关介绍,兔宝宝游戏网给大家详细的介绍一下,希望对大家有帮助。
1、NodeCanvas实战案例:
叶柄没有子节点,位于树的末端。
Sequencer按从最高优先级到最低优先级(从左到右)的顺序执行其子节点。
Selector按从高到低的优先级(从左到右)的顺序执行其子节点。
概率选择器将根据被选择的机会选择并执行子节点。如果该选定子级返回成功,则概率选择器还将返回成功。如果返回失败,则将选择一个新的子代。如果没有孩子返回成功,则概率选择器将返回失败,或者如果引入了“失败机会”,则可能立即返回失败。
优先级选择器与普通选择器相似,但是将根据每个子级具有的优先级来选择子级执行的顺序。连接子节点后,将显示优先权重,您可以直接或通过Blackboard变量进行更改。
并行将同时执行其所有子级。可以将其设置为具有Sequencer或Selector的策略,如下所示:
如果设置为First Failure,则任何子代返回Failure后,并行将重置所有当前的Running子代,并返回Failure。否则,当所有孩子都返回成功后,它将返回成功。
如果设置为First Success,则任何子级返回Success时,并行将重置所有当前的Running子级,并也返回Success。否则,当所有孩子都返回失败后,它将返回失败。
翻转选择器的工作方式与普通选择器类似,但是一旦子节点返回成功,它就会移到末尾(右)。因此,以前将始终先检查失败的孩子,最近再检查成功的孩子。
Switch节点可以切换Enum或Integer值。根据当前的Enum或整数值,它将执行相应的子节点。如果另一个子节点先前在运行,它将被中断。连接子节点后,连接将读取枚举或整数值。
步骤迭代器类似于选择器。如果子节点返回成功,则返回成功,如果所有子节点返回失败,则返回失败。唯一的区别是,它会记住哪个子级返回成功,并从下一个子级开始下一次执行,以便在下次再次执行步骤迭代器时按顺序进行。
Interuptor被分配了条件任务。如果条件为真或变为真,则子节点将在运行中被中断,并且中断器将返回失败。否则,中断器将返回子节点返回的任何内容。
仅当指定的条件为true时,条件语句才会执行其子节点,然后它将返回子节点返回的任何内容。如果条件为假,但子节点尚未运行,它将返回失败。因此,换句话说,如果条件即使成功了一帧,则子节点将执行并且即使条件不再成立也不会被中断。
逆变器会将其子节点的成功和失败返回状态重新映射为相反的状态。 成功:将子节点重新映射到成功时。
Repeater会重复其子级Number次,或者直到它返回指定的状态,或者Forever。
按特定的Numbers次数或每特定的时间量(例如Cooldown)过滤对其子节点的访问。默认情况下,如果将其过滤,则关于其父节点,该节点将被视为“不活动”。取消选择此选项将返回失败。
迭代器将迭代从黑板获取的列表。在每次迭代中,将使用提供的名称将当前迭代的元素保存在同一黑板上,并将执行子节点。
可以选择将Iterator设置为在装饰的节点返回成功或失败后立即终止迭代。如果未设置任何终止条件(NONE),或者如果列表已被迭代且不满足终止条件,则Iterator将返回上一次返回的迭代子执行的结果。
如果选中了“重置索引”,则迭代器将在重置时将当前迭代的索引重置为零,否则该索引将保留,除非它是列表的最后一个索引。将其视为“for each”。
如果子节点的运行时间超过以秒为单位指定的时间,则超时装饰器将中断子节点“运行”。否则,它将返回子节点返回的任何内容。
Wait Until将返回运行,直到分配的条件任务变为真。如果在子级被勾选后条件变为假,它将不会中断它。仅当孩子尚未运行时才检查该条件。
成功:当子级返回成功时。
失败:当子级返回失败时。
正在运行:当子级返回正在运行或条件为假时。
Optional Decorator在执行装饰的子节点时不考虑其成功或失败返回状态,因此就预期状态而言,它对于父节点是可选的。
如果具有相同指定令牌的另一个Guard已经在保护(运行)该令牌,则防止装饰的子级运行。对于为同一代理运行的所有行为树,保护是全局的。
受保护时,可以将其设置为返回失败或正在运行。
Override Agent将为行为树的其余部分以及直接从Blackboard变量中选择或获取的游戏对象设置另一个Agent。这意味着该装饰器下面的每个节点现在都会被该新代理选中。此装饰器是NodeCanvas允许您从单个“主”行为树控制多个代理或动态更改代理的方式之一。
子树是整个其他行为树。SubTree节点将返回分配的行为树的根节点(“开始”)返回的任何内容。根行为树的代理和黑板将向下传递到子树,因此所有可用的黑板变量将相同,并且也可用于子树。
成功:当SubTree的根节点返回成功时。
失败:当SubTree的根节点返回失败时。
正在运行:当SubTree的根节点返回“正在运行”时。
可以为嵌套的FSM分配整个FSM。执行后,FSM将启动。只要FSM正在运行,NestedFSM节点将返回“正在运行”。您可以为成功指定FSM的一种状态,为失败指定另一种状态。一旦嵌套的FSM进入任何一种状态,FSM将停止,并且该节点将相应地返回成功或失败。否则,当嵌套的FSM完成时,它将返回成功。此行为树的代理和黑板将传递给嵌套FSM,因此根行为树的所有可用变量也将相同,并且可用于嵌套FSM。
成功:当嵌套FSM进入选定的成功状态时,或嵌套FSM完成时。
失败:嵌套的FSM进入选定的失败状态时。
运行:只要嵌套FSM正在运行。
2、用node-canvas绘制中文的时候乱码怎么解决:
edhat 6下node-canvas中文乱码解决方法。乱码主要是在安装系统时没有相应的中文字体和freetype支持。只要我们安装这两项即可。
我们实用光盘做为yum源这样方便安装依赖库
//创建光盘挂载目录
mkdir /yum
mount /dev/cdrom /yum
//创建本地yum源
cd /etc/yum.repos.d/
//备份旧文件
mv rhel-source.repo rhel-source.repo.bak
//创建本地源文件
vi /etc/yum.repos.d/local.repo
//写以下内容到local.repo
[base]
name=linux 6
baseurl=file:///yum
gpgcheck=0
enable=1
//修改yum源的地址
vi /usr/lib/python2.6/site-packages/yum/yumRepo.py
在上面的文件中找到下面这行
remote = url + '/' + relative
将其改为
remote = '/yum' + relative
配置到这里就完成了
//清理yum,可能会报错,不用管错误
yum clean
//安装中文支持
yum groupinstall "Chinese Support"
//安装字休
yum groupinstall Fonts
//安装字体支持库
cd /yum/Packages
rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
rpm -ivh freetype-devel-2.3.11-6.el6_2.9.x86_64.rpm
rpm -ivh fontconfig-devel-2.8.0-3.el6.x86_64.rpm
//创建中文字体目录
mkdir -p /usr/share/fonts/chinese/TrueType
//复制字体文件到刚才创建的目录
cp SimSun.ttf /usr/share/fonts/chinese/TrueType
cd /usr/share/fonts/chinese/TrueType
//运行下面三个指令,更新字体
mkfontscale
mkfontdir
fc-cache -f -v
//重新编译node-canvas绘图库
补充:
node-canvas在6.3系统上需要使用指定字体时要求字体必须存在而在6.4发现可以使用不存在的字体。
总结:以上内容就是针对NodeCanvas实战案例,NodeCanvas——行为树节点介绍的详细介绍,大家可以参考一下。
gta5武器秘籍大全,完整版无限子弹,gta5的武器秘籍有哪些,gta5武器全满代码是:IFWEREARCHMAN。其他秘籍:一、武
2025-03-11-
海龟汤题目和答案全套恐怖高难度,细思极恐的冷门海龟汤 2025-03-11
-
女生手抄上林赋是什么梗的含义(为什么抄上林赋得心上人) 2025-03-11
-
侠盗飞车罪恶都市秘籍大全(完整版),侠盗飞车罪恶都市秘籍有哪些呢 2025-03-11
-
gta5武器秘籍大全(完整版)无限子弹,gta5的武器秘籍有哪些 2025-03-11
-
梦幻西游义绝墨魂笔3x攻略(神器义绝墨魂笔之踪攻略) 2025-03-11
-
公交车里抓着摇曳的手环诗情,清晨时见雾青草沾雨露是什么歌 2025-03-11