extends NinePatchRect var max_displacement : float = 50 var speed : float = 10 var move_dir : Vector2 var start_position : Vector2 func _ready() -> void: start_position = position move_dir = Vector2.UP.rotated(randf() * 2 * PI) func _process(delta: float) -> void: var offset = (position - start_position).length() / max_displacement var turn = randf_range(-PI / 6.0, PI / 6.0) * offset var a_dir = move_dir.rotated(turn) var b_dir = move_dir.rotated(-turn) var ap = position + speed * delta * a_dir var bp = position + speed * delta * b_dir var mpsq = max_displacement * max_displacement if ap.distance_squared_to(start_position) < mpsq: position = ap move_dir = a_dir else: position = bp move_dir = b_dir