luna-lunatic/objects/player/groove.gd
2025-11-01 20:58:32 -06:00

18 lines
503 B
GDScript

class_name Groove
extends CharacterBody2D
@export var rest_length: float
@export var springiness: float
@export var damping: float
@export var player: Player
func _physics_process(delta: float) -> void:
var length = global_position.distance_to(player.global_position)
var tension = length - rest_length
if tension > 0:
var force = tension * springiness
velocity += global_position.direction_to(player.global_position) * force * delta
velocity -= velocity * damping * delta
move_and_slide()