diff options
Diffstat (limited to 'demos/2d/navpoly/navigation.gd')
-rw-r--r-- | demos/2d/navpoly/navigation.gd | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/demos/2d/navpoly/navigation.gd b/demos/2d/navpoly/navigation.gd deleted file mode 100644 index 4cfa2ad733..0000000000 --- a/demos/2d/navpoly/navigation.gd +++ /dev/null @@ -1,53 +0,0 @@ - -extends Navigation2D - -# Member variables -const SPEED = 200.0 - -var begin = Vector2() -var end = Vector2() -var path = [] - - -func _process(delta): - if (path.size() > 1): - var to_walk = delta*SPEED - while(to_walk > 0 and path.size() >= 2): - var pfrom = path[path.size() - 1] - var pto = path[path.size() - 2] - var d = pfrom.distance_to(pto) - if (d <= to_walk): - path.remove(path.size() - 1) - to_walk -= d - else: - path[path.size() - 1] = pfrom.linear_interpolate(pto, to_walk/d) - to_walk = 0 - - var atpos = path[path.size() - 1] - get_node("agent").set_pos(atpos) - - if (path.size() < 2): - path = [] - set_process(false) - else: - set_process(false) - - -func _update_path(): - var p = get_simple_path(begin, end, true) - path = Array(p) # Vector2array too complex to use, convert to regular array - path.invert() - - set_process(true) - - -func _input(event): - if (event.type == InputEvent.MOUSE_BUTTON and event.pressed and event.button_index == 1): - begin = get_node("agent").get_pos() - # Mouse to local navigation coordinates - end = event.pos - get_pos() - _update_path() - - -func _ready(): - set_process_input(true) |