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

17 lines
551 B
GDScript3
Raw Normal View History

extends GSTMatchOrientation
class_name GSTLookWhereYouGo
# Calculates an angular acceleration to match an agent's orientation to its direction of travel.
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 := atan2(agent.linear_velocity.x, -agent.linear_velocity.y)
return _match_orientation(accel, orientation)