1
1
extends Node2D
2
2
3
+ const PathFindAStar = preload ("./pathfind_astar.gd" )
4
+
3
5
enum State {
4
6
IDLE ,
5
7
FOLLOW ,
6
8
}
7
9
8
- const MASS = 10.0
9
- const ARRIVE_DISTANCE = 10.0
10
+ const MASS : float = 10.0
11
+ const ARRIVE_DISTANCE : float = 10.0
10
12
11
- @export_range (10 , 500 , 0.1 , "or_greater" ) var speed : = 200.0
13
+ @export_range (10 , 500 , 0.1 , "or_greater" ) var speed : float = 200.0
12
14
13
15
var _state := State .IDLE
14
16
var _velocity := Vector2 ()
@@ -17,7 +19,7 @@ var _click_position := Vector2()
17
19
var _path := PackedVector2Array ()
18
20
var _next_point := Vector2 ()
19
21
20
- @onready var _tile_map : TileMap = $ "../TileMap"
22
+ @onready var _tile_map : PathFindAStar = $ "../TileMap"
21
23
22
24
func _ready () -> void :
23
25
_change_state (State .IDLE )
@@ -27,7 +29,7 @@ func _process(_delta: float) -> void:
27
29
if _state != State .FOLLOW :
28
30
return
29
31
30
- var arrived_to_next_point : = _move_to (_next_point )
32
+ var arrived_to_next_point : bool = _move_to (_next_point )
31
33
if arrived_to_next_point :
32
34
_path .remove_at (0 )
33
35
if _path .is_empty ():
@@ -46,9 +48,9 @@ func _unhandled_input(event: InputEvent) -> void:
46
48
_change_state (State .FOLLOW )
47
49
48
50
49
- func _move_to (local_position : Vector2 ) -> float :
50
- var desired_velocity : = (local_position - position ).normalized () * speed
51
- var steering : = desired_velocity - _velocity
51
+ func _move_to (local_position : Vector2 ) -> bool :
52
+ var desired_velocity : Vector2 = (local_position - position ).normalized () * speed
53
+ var steering : Vector2 = desired_velocity - _velocity
52
54
_velocity += steering / MASS
53
55
position += _velocity * get_process_delta_time ()
54
56
rotation = _velocity .angle ()
0 commit comments