25 lines
693 B
GDScript
25 lines
693 B
GDScript
extends PathFollow2D
|
|
|
|
export (float) var speed = 0.250
|
|
|
|
var position_on_track := 0.0
|
|
var target_on_track := 0.0
|
|
|
|
func _process(delta):
|
|
# Check if a lap was completed
|
|
if int(position_on_track) > Global.laps:
|
|
Global.laps += 1
|
|
|
|
# Move the player until target_on_track
|
|
elif target_on_track - position_on_track > 0.01:
|
|
# Speed up car as the target_on_track goes further
|
|
var speed_mod = int(clamp((target_on_track - position_on_track) / speed, 1.0, 4.0))
|
|
position_on_track += speed * delta * speed_mod
|
|
set_unit_offset(min(position_on_track, target_on_track))
|
|
else:
|
|
position_on_track = target_on_track
|
|
|
|
|
|
func _on_RaceTrack_player_moved(track_offset):
|
|
target_on_track = track_offset
|