diff options
-rw-r--r-- | components/PathRenderer.gd | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/components/PathRenderer.gd b/components/PathRenderer.gd index 14853ce..ab5e19f 100644 --- a/components/PathRenderer.gd +++ b/components/PathRenderer.gd @@ -3,6 +3,7 @@ extends Node2D class_name PathRenderer export var path_color : Color = Color.brown setget _color +export var target_color : Color = Color.red setget _target_color export var stroke_width : int = 6 setget _width var path : Path2D = null setget _path @@ -14,6 +15,10 @@ func _color(value): path_color = value update() +func _target_color(value): + target_color = value + update() + func _path(value): path = value update() @@ -23,9 +28,13 @@ func _draw(): return var last_point = null var points = path.curve.get_baked_points() + var length = path.curve.get_baked_length() + var dist = 0 for point in points: if last_point == null: last_point = point continue - draw_line(last_point, point, path_color, stroke_width, false) + dist += (last_point - point).length() + var col = lerp(path_color, target_color, dist / length) + draw_line(last_point, point, col, stroke_width, false) last_point = point |