[006] AStar Pathfinding
[006] A-Star Pathfinding
[36h] A-Star Pathfinding using Tilemap & draw()
[Aug 21, 2023] 4h - Tilemap study & review [Aug 22, 2023] 4h - AStar pathfinding study & review - Tilemap static functions & utility - [VCM] View-Controller-Model pattern [Aug 23, 2023] 2h - AStar pathfinding better pseudocode [Aug 24, 2023] 3h - AStar Pathfinding futher learning check - UI and camera controls [Aug 25, 2023] 2h - More camera controls [Aug 26, 2023] 4h - Camera2D zoom and control finished - Pathfinding errors (use of opened and closed array) [Aug 27, 2023] 3h - Player triangle to follow path [Aug 28, 2023] 9h - Debug mode (show index & costs) - Step by Step mode - Additional UI for modes - Fix in distance calculation [Aug 29, 2023] 5h - Finalizing UI - Player Behaviour Fix - Project Upload & Review Pseudocode [en.wikipedia.org/wiki/A*_search_algorithm] g_cost # distance from start_cell [] h_cost # distance to target_cell [heuristic] f_cost # g_cost + h_cost [full] opened_array # set of nodes to be evaluated closed_array # set of nodes already evaluated 00 add start_cell to opened_array 01 loop: 02 _current_cell = lowest f_cost in opened_array 03 if tie, _current_cell = lowest h_cost in opened_array 04 if tie, _current_cell = random between lowest 05 remove current_cell from opened_array 06 add current_cell to closed_array 07 if current_cell is target_cell, path found 08 retrace step from start_cell 09 return 10 loop each neighbour of current_cell 11 if neighbour is unpassable OR 12 if neighbour is in closed_array 13 skip to next neighbour # youtu.be/watch?v=mZfyt03LDH4&t=1004s 14 new_distance = distance of current cell and neighbour 15 plus current g_cost of current_cell 16 if neighbour is not in OPEN or 17 if new_distance is shorter than g_cost of neighbour 18 set g_cost of neighbour = new_distance [distance to start] 19 set h_cost of neighbour = distance to target 20 set f_cost of neighbour = g_cost + f_cost 21 set parent of neighbour to current_cell 22 if neighbour is not in OPEN, add to open Note: error in distance calculation # if horizontal distance is equal to vertical distance # will result in a 0 distance, forgot the "=" operator # took me a TON of time to detect this single error
Status | Released |
Platforms | HTML5 |
Author | QuietGodot |
Made with | Godot |
Leave a comment
Log in with itch.io to leave a comment.