godot-steering-ai-framework/project/src/Behaviors/GSTLookWhereYouGo.gd

17 lines
542 B
GDScript3
Raw Normal View History

# Calculates an angular acceleration to match an agent's orientation to its direction of travel.
class_name GSTLookWhereYouGo
2020-01-16 23:14:50 +01:00
extends GSTMatchOrientation
func _init(agent: GSTSteeringAgent).(agent, null) -> void:
pass
func _calculate_steering(accel: GSTTargetAcceleration) -> GSTTargetAcceleration:
if agent.linear_velocity.length_squared() < agent.zero_linear_speed_threshold:
accel.set_zero()
return accel
else:
var orientation := GSTUtils.vector_to_angle(agent.linear_velocity)
return _match_orientation(accel, orientation)