Files
pomchronicles/scripts/map_cloud.gd

27 lines
731 B
GDScript

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