Tout d'abord, l'algorithme de recherche de chemin A * est divisé en algorithme 2D et algorithme 3D.À l'heure actuelle, il n'est même pas aussi efficace que l'algorithme NAVMesh. Mais NAVMesh n'est pas adapté à la 2D, donc la 2D doit encore être réalisée par l'algorithme A*.
Parlons maintenant de la façon dont la 2D est réalisée.
Tout d'abord, l'algorithme 2DA* divise d'abord la carte en blocs de grille et les marque en tableaux bidimensionnels
Chaque grille forme un tableau de int[][][][] basé sur x, y (position), numéro d'identification et valeur de poids pour déterminer la position de chaque grille
Ensuite, supposons que la recherche de chemin A * est effectuée de A à B
Sélectionnez d'abord 4 ou 8 points près du point A (le rouge correspond à 4 positions et les points bleus qui sont ajoutés sur la base de 4 sont les positions de 8 points)
(Cette fois, nous choisissons 8 points à expliquer. Si seule la ligne de défense horizontale de l'objet est autorisée à se déplacer, seuls quatre points peuvent être sélectionnés.)
Ensuite, ces 8 points peuvent être stockés en séquence, et voir lequel de ces 8 points est le plus proche du point B et sélectionner ce point
Sélectionnez ensuite 8 points à partir de ce point, et ainsi de suite, jusqu'à ce qu'il y ait un point b parmi les 8 points, indiquant que la navigation est terminée
C'est son principe d'algorithme de base
Que dois-je faire si je rencontre un obstacle ?
Selon la logique ci-dessus, il devrait être comme ça
Prends le point rouge ci-dessus et meurs
À ce stade, A* constate qu'il ne peut pas passer, je dois donc revenir à ce moment-là
Cela signifie que vous ne pouvez pas y aller lorsque vous rencontrez un obstacle, vous devez changer de direction
C'est une question de poids
À ce moment-là, j'ai découvert que je rencontrais un obstacle lorsque je marchais cette fois-ci, et je ne pouvais pas marcher après avoir marché le plus petit poids de 1.
Par conséquent, il est nécessaire d'enregistrer le poids des coordonnées écrites lorsque vous heurtez le mur, afin d'éviter la situation de ne pas pouvoir passer.A ce moment, choisissez 2 pour trouver le chemin, puis cherchez à tour de rôle.
Cela termine la navigation, mais cela peut entraîner une énorme surcharge de calcul lorsque vous rencontrez une navigation complexe dans un labyrinthe, alors soyez prudent !
Par conséquent, la "navigation à quatre points" est généralement utilisée dans la carte du monde ouverte. Comme l'espace n'est pas petit, je le mettrai à jour plus tard en fonction de la situation.