first commit
This commit is contained in:
33
Track.gd
Normal file
33
Track.gd
Normal file
@@ -0,0 +1,33 @@
|
||||
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()) )
|
||||
Reference in New Issue
Block a user