sensors.DistanceSensor

class sensors.DistanceSensor(port: Optional[int] = None)

Sensor for measuring linear distances.

distance() float

Distance in meters to whatever is in front of the sensor. A slight smoothing filter is applied to this value. For an unfiltered version condsider stream().

The following example assumes that a distance sensor is assigned to port 0 and a TextScreen is assigned to port 1.

from sensors import DistanceSensor
from controllables import TextScreen

sensor = DistanceSensor(0)
screen = TextScreen(1)

while True:
    screen.text = f"Distance: {sensor.distance(): 4.1f}"
stream() Stream[float]

Creates an stream of distance values in meters.

The following example assumes that a distance sensor is assigned to port 0.

from sensors import DistanceSensor
from time import sleep

sensor = DistanceSensor(0)
stream = sensor.stream()

sensor.visible_laser = False

while True:
    for distance in stream:
        if distance < 1:
            sensor.visible_laser = True

    if sensor.visible_laser:
        sleep(.1)
        sensor.visible_laser = False
property visible_laser: bool

The visible laser property of the distance sensor avaliable in the properties tab.

from sensors import DistanceSensor

sensor = DistanceSensor(0)

while True:
        # turn the laser on if something is within 5 meters
        sensor.visible_laser = sensor.distance() < 5
name() str

Returns the user editable name of the controllable as found in the properties tab of the game.

The following example assumes that any controllable or sensor is assigned to port 0 and prints out its name.

from ports import PortReference

print(PortReference(0).name())