From 502d41077739c991b3b04836f500fa2b07771e8b Mon Sep 17 00:00:00 2001 From: Danil Alexeev Date: Wed, 26 Apr 2023 15:57:41 +0300 Subject: [PATCH] Update "Grid-based Navigation with AStarGrid2D" demo --- 2d/navigation_astar/pathfind_astar.gd | 13 ++++--------- 2d/navigation_astar/project.godot | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/2d/navigation_astar/pathfind_astar.gd b/2d/navigation_astar/pathfind_astar.gd index dc163683..bf921482 100644 --- a/2d/navigation_astar/pathfind_astar.gd +++ b/2d/navigation_astar/pathfind_astar.gd @@ -8,18 +8,13 @@ const DRAW_COLOR = Color.WHITE # The object for pathfinding on 2D grids. var _astar = AStarGrid2D.new() -var _map_rect = Rect2i() var _start_point = Vector2i() var _end_point = Vector2i() var _path = PackedVector2Array() func _ready(): - # Let's assume that the entire map is located at non-negative coordinates. - var map_size = get_used_rect().end - _map_rect = Rect2i(Vector2i(), map_size) - - _astar.size = map_size + _astar.region = get_used_rect() _astar.cell_size = CELL_SIZE _astar.offset = CELL_SIZE * 0.5 _astar.default_compute_heuristic = AStarGrid2D.HEURISTIC_MANHATTAN @@ -27,8 +22,8 @@ func _ready(): _astar.diagonal_mode = AStarGrid2D.DIAGONAL_MODE_NEVER _astar.update() - for i in map_size.x: - for j in map_size.y: + for i in range(_astar.region.position.x, _astar.region.end.x): + for j in range(_astar.region.position.y, _astar.region.end.y): var pos = Vector2i(i, j) if get_cell_source_id(0, pos) == Tile.OBSTACLE: _astar.set_point_solid(pos) @@ -52,7 +47,7 @@ func round_local_position(local_position): func is_point_walkable(local_position): var map_position = local_to_map(local_position) - if _map_rect.has_point(map_position): + if _astar.is_in_boundsv(map_position): return not _astar.is_point_solid(map_position) return false diff --git a/2d/navigation_astar/project.godot b/2d/navigation_astar/project.godot index 7013af9a..518e1f39 100644 --- a/2d/navigation_astar/project.godot +++ b/2d/navigation_astar/project.godot @@ -14,7 +14,7 @@ config/name="Grid-based Pathfinding with AStarGrid2D" config/description="This is an example of using AStarGrid2D for navigation in 2D, complete with Steering Behaviors in order to smooth the movement out." run/main_scene="res://game.tscn" -config/features=PackedStringArray("4.0") +config/features=PackedStringArray("4.1") config/icon="res://icon.webp" [display]