Update "Grid-based Navigation with AStarGrid2D" demo for 4.1 (#914)

Update "Grid-based Navigation with AStarGrid2D" demo for 4.1
This commit is contained in:
Hugo Locurcio 2023-08-07 14:00:14 +02:00 committed by GitHub
commit e9f0f75c5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 10 deletions

View File

@ -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

View File

@ -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"
config/tags=PackedStringArray("2d", "ai", "demo", "official", "tilemap")