Files
CarRacer/Track.gd
2020-10-28 16:08:07 +01:00

34 lines
948 B
GDScript

extends PathFollow2D
export (int) var threshold = 5 # Range to snap around axis direction, in degrees.
func _ready():
set_unit_offset(0.0)
func snap_rotation(r):
"""
Snap rotation to multiples of 45°
Also snaps within a certain range of direction axis
"""
if r >= 0 - threshold and r <= 0 + threshold: # Right
r = 0
elif r >= 180 - threshold or r <= -180 + threshold: # Left
r = 180
elif r >= 90 - threshold and r <= 90 + threshold: # Down
r = 90
elif r >= -90 - threshold and r <= -90 + threshold: # Up
r = -90
elif r > 0 + threshold and r < 90 - threshold:
r = 45
elif r > 90 + threshold and r < 180 - threshold:
r = 135
elif r > -90 + threshold and r < 0 - threshold:
r = -45
elif r > -180 + threshold and r < -90 - threshold:
r = -135
return r
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
set_rotation_degrees( snap_rotation(get_rotation_degrees()) )