Почему godot считает здесь, что точка 24, 39 находится вне [P: (-18, -8), S: (40, 40)]?
Вроде ничего не предвещает беды. И тут:
E 0:00:01:0246 map.gd:35 @ _ready(): Can't set if point is disabled. Point (24, 39) out of bounds [P: (-18, -8), S: (40, 40)].
<Ошибка C++> Condition "!is_in_boundsv(p_id)" is true.
<Исходный код C++>core/math/a_star_grid_2d.cpp:209 @ set_point_solid()
<Трассировка стека>map.gd:35 @ _ready()
Спросил chatgpt насчёт этого, но он считает, что мне реально нужно проверить находится ли точка в регионе (лол)
Хочу убрать клетки из AStarGrid, чтобы он не допускал построение пути через них. Ниже код:
func _ready() -> void:
var tilemapSize = get_used_rect().end - get_used_rect().position
var mapRect = Rect2i(-18,-8, 40, 40)
var tileSize = tile_set.tile_size
astar.region = mapRect
astar.cell_size = tileSize
astar.default_compute_heuristic = AStarGrid2D.HEURISTIC_MANHATTAN
astar.default_estimate_heuristic = AStarGrid2D.HEURISTIC_MANHATTAN
astar.diagonal_mode = AStarGrid2D.DIAGONAL_MODE_NEVER
astar.update()
for i in tilemapSize.x:
for j in tilemapSize.y:
var coords = Vector2i(i, j)
var tileData = get_cell_tile_data(coords)
if tileData and tileData.get_custom_data('Type') == 'Wall':
astar.set_point_solid(coords)
elif tileData and tileData.get_custom_data('Type') == 'Void':
astar.set_point_solid(coords)
pass
Что, блин, здесь не так? ( Важно отметить, что он, похоже, любую точку считает вне [P: (-18, -8), S: (40, 40)]