23 lines
666 B
GDScript
23 lines
666 B
GDScript
class_name Wanderer
|
|
|
|
extends Node
|
|
|
|
const DIST_FROM_MOUSE := 1000.0
|
|
|
|
@onready var new_target: Timer = $NewTarget
|
|
|
|
@export var node_to_move: Node2D
|
|
@export var speed := 75
|
|
@export var move := false
|
|
@export var wait_time_min := 1.0
|
|
@export var wait_time_max := 2.0
|
|
var target_pos := Vector2()
|
|
|
|
func _process(delta: float) -> void:
|
|
if move:
|
|
node_to_move.position += node_to_move.position.direction_to(target_pos) * speed * delta
|
|
|
|
func _on_new_target_timeout() -> void:
|
|
target_pos = get_viewport().get_camera_2d().get_global_mouse_position() + (Vector2.RIGHT * DIST_FROM_MOUSE).rotated(randf_range(0, PI))
|
|
new_target.start(randf_range(wait_time_min, wait_time_max))
|