mirror of
https://github.com/Steffo99/hella-farm.git
synced 2025-02-16 17:13:58 +00:00
Create generic MoveTowardsMouse
behaviour
This commit is contained in:
parent
0bb9d427e9
commit
cc2874dd90
2 changed files with 29 additions and 0 deletions
26
behaviours/move_towards_mouse.gd
Normal file
26
behaviours/move_towards_mouse.gd
Normal file
|
@ -0,0 +1,26 @@
|
|||
extends Node2D
|
||||
class_name MoveTowardsMouse
|
||||
|
||||
|
||||
signal move(movement: Vector2)
|
||||
|
||||
|
||||
@export_range(-5, 5, 1) var speed := 1.0
|
||||
|
||||
@onready var viewport: Viewport = get_viewport()
|
||||
@onready var target = get_parent()
|
||||
|
||||
|
||||
func get_relative_mouse_position():
|
||||
var viewport_position: Vector2 = viewport.position
|
||||
var viewport_mouse_position: Vector2 = viewport.get_mouse_position()
|
||||
var global_mouse_position: Vector2 = viewport_position + viewport_mouse_position
|
||||
var relative_mouse_position: Vector2 = global_mouse_position - global_position
|
||||
return relative_mouse_position
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
var direction: Vector2 = position.direction_to(get_relative_mouse_position())
|
||||
var movement: Vector2 = direction * delta * speed
|
||||
Log.p(self, "Moving: %s" % movement)
|
||||
move.emit(movement)
|
3
behaviours/move_towards_mouse.tscn
Normal file
3
behaviours/move_towards_mouse.tscn
Normal file
|
@ -0,0 +1,3 @@
|
|||
[gd_scene format=3 uid="uid://bvrxvrjlo5130"]
|
||||
|
||||
[node name="MoveTowardsMouse" type="Node2D"]
|
Loading…
Add table
Reference in a new issue