简介

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

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

通用选项

../../../_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 参数,传感器会根据其取反后的状态来触发控制器。