Je déconne avec l'écriture d'un RPG tactique vraiment pauvre en C ++. Jusqu'à présent, j'ai une carte de tuiles 2D et je viens de faire fonctionner l'algorithme A * basé sur le pseudocode dans le wikipedia .
Mais les vrais RPG tactiques ne se contentent pas de trouver le meilleur chemin sur un plan plat et de s'y déplacer. Ils ont généralement des gammes de mouvement limitées et doivent monter ou descendre. Si vous avez déjà joué à Final Fantasy Tactics, ceux-ci seront affectés par les statistiques de déplacement et de saut. C'est là que je me perds. Comment puis-je modifier l'algorithme A * afin qu'il trouve le meilleur chemin vers une cible, mais que le chemin ne soit long que de nombreuses tuiles? Comment dois-je prendre en compte les différences de hauteur et les statistiques de saut? Comment mettre en œuvre le saut par-dessus un écart?
Si cela peut aider, ma carte est actuellement représentée par un vecteur d'objets Tile. Chaque tuile a des pointeurs vers la tuile Nord, Sud, Est et Ouest, qui sont définis sur un nullptr s'il n'y a pas de tuile là-bas, comme le long du bord de la carte ou si une tuile est définie sur non-passable.