diff options
Diffstat (limited to 'demos/2d/navpoly/navigation.gd')
-rw-r--r-- | demos/2d/navpoly/navigation.gd | 64 |
1 files changed, 27 insertions, 37 deletions
diff --git a/demos/2d/navpoly/navigation.gd b/demos/2d/navpoly/navigation.gd index 9c3dc2921d..4cfa2ad733 100644 --- a/demos/2d/navpoly/navigation.gd +++ b/demos/2d/navpoly/navigation.gd @@ -1,63 +1,53 @@ extends Navigation2D -# member variables here, example: -# var a=2 -# var b="textvar" -var begin=Vector2() -var end=Vector2() -var path=[] +# Member variables +const SPEED = 200.0 -const SPEED=200.0 - -func _process(delta): +var begin = Vector2() +var end = Vector2() +var path = [] - if (path.size()>1): - +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] + 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 + 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] + 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=[] + 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 to complex to use, convert to regular array + 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(ev): - if (ev.type==InputEvent.MOUSE_BUTTON and ev.pressed and ev.button_index==1): - begin=get_node("agent").get_pos() - #mouse to local navigatio cooards - end=ev.pos - get_pos() +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(): - # Initialization here set_process_input(true) - pass - - |