简介

触发器是导致逻辑块执行任何逻辑操作的原因。触发器在发生某些事件时提供输出,例如:触发事件,如两个对象之间的碰撞,键盘上按下的键,或定时事件中关闭的计时器。当一个触发器被触发时,一个正脉冲被发送到所有链接到它的控制器上。

所有类型的触发器逻辑块都可以使用 逻辑编辑器 来构建和更改,该过程的详细信息见 触发器编辑 页面。

通用选项

../../../_images/game-engine_logic_sensors_common-options_column3.jpg

常见的触发器选项。

所有触发器都有一组通用的按钮、字段和菜单。它们的组织形式如下所述:

三角形按钮
将触发器信息折叠成单行(可切换)。
触发器类型菜单
指定触发器的类型。
触发器名称
由用户来选择触发器的名称。它可用于在使用 Python 时访问触发器,需要在所选对象中是唯一的。
图钉按钮
即使触发器没有链接到可见状态的控制器,也要显示它。
复选框按钮
设置触发器的活动状态。
X 按钮
删除触发器。

Note

触发器

如果控制器没有被任何连接的触发器触发(不管触发器的状态如何),它将根本不会被激活。

触发器在状态改变时触发连接控制器。当触发器将其状态从负变为正或正变为负时,触发器会触发连接的控制器。当触发器从停用变为激活时,触发器也会触发连接的控制器。

以下参数指定触发器如何触发连接的控制器:

正能级触发
如果设置了此值,只要触发器的状态为正值,连接的控制器就会被触发。触发器将以自身的延迟触发(请参阅参数:频率)。true-button
负能级触发
如果设置了此值,只要触发器的状态为负值,连接的控制器就会被触发。触发器将以自身的延迟触发(请参阅参数:频率)。false-button
频率

尽管名称为“频率”,但此参数却是设置重复触发之间的延迟,以帧为单位(也称为逻辑时间差)来度量。默认值是 0,表示没有延迟。仅当启用至少一个能级触发参数时才使用。

通过提高 频率 的值是避免过多地执行控制器或激活促动器来节省性能成本的好方法。

例子:假设默认帧速率的频率为 60 Hz(即每秒 60 帧)。

频率 含义 有触发器的帧 无触发器的帧 帧内周期 频率以“帧/秒”为单位
0 触发器触发下一帧。 1 0 1 60
1 触发器在一帧处触发并等待另一帧直到再次触发。其结果是速度减半。 1 1 2 30
29 触发器触发一帧,并等待 29 帧直到再次触发。 1 29 30 2
59 触发器触发一帧,并等待 59 帧直到再次触发。 1 59 30 1
水平 [触发](Level) 按钮
当(内置状态机的)状态改变时触发连接的控制器(欲了解更多信息,请参阅 状态 )。

以下参数指定如何计算触发器的状态:

边缘 [触发](Tap) 按钮
即使触发器的计算结果保持为正值,也要在改变为正值后将触发器的状态变为负一帧。由于这是一个状态的变化,它也会同时触发连接的控制器。只有 边缘(Tap)水平(Level) 中的一个可以被激活。如果设置了 正能级触发 ,则触发器状态将从 True 持续变为 False,直到触发器计算结果为 False。当 Tap 参数被设置时,负能级触发 将被忽略。
取反(Invert) 按钮
这将对触发器的输出取反。如果设置了这个值,触发器的状态将被反转。这意味着触发器的状态计算为 False 时变为 True,而计算为 True 时则变成 False。如果设置了 Tap 参数,触发器会根据其取反后的状态来触发控制器。