29 lines
993 B
Python
29 lines
993 B
Python
|
|
||
|
# This recipe changes from red to green the traffic light that affects the vehicle.
|
||
|
# This is done by detecting if the vehicle actor is at a traffic light.
|
||
|
|
||
|
# ...
|
||
|
world = client.get_world()
|
||
|
spectator = world.get_spectator()
|
||
|
|
||
|
vehicle_bp = random.choice(world.get_blueprint_library().filter('vehicle.bmw.*'))
|
||
|
transform = random.choice(world.get_map().get_spawn_points())
|
||
|
vehicle = world.try_spawn_actor(vehicle_bp, transform)
|
||
|
|
||
|
# Wait for world to get the vehicle actor
|
||
|
world.tick()
|
||
|
|
||
|
world_snapshot = world.wait_for_tick()
|
||
|
actor_snapshot = world_snapshot.find(vehicle.id)
|
||
|
|
||
|
# Set spectator at given transform (vehicle transform)
|
||
|
spectator.set_transform(actor_snapshot.get_transform())
|
||
|
# ...# ...
|
||
|
if vehicle_actor.is_at_traffic_light():
|
||
|
traffic_light = vehicle_actor.get_traffic_light()
|
||
|
if traffic_light.get_state() == carla.TrafficLightState.Red:
|
||
|
# world.hud.notification("Traffic light changed! Good to go!")
|
||
|
traffic_light.set_state(carla.TrafficLightState.Green)
|
||
|
# ...
|
||
|
|