Recherche de chemin

Bonjour,

Je suis en train de créer un générateur aléatoire de donjons en utilisant l’algorithme de recherche de chemin.
La création se déroule comme ce qui suit :

  1. Un certain nombre de salles (de tailles variables) sont créées à des positions aléatoires.
  2. Sur chaque salle, de 1 à 4 portes sont créées sur ses bords (une pour chaque point cardinal).
  3. Pour chaque porte, un objet “Pathfinder” est créé : il va relier les salles entre elles.
  4. Chaque Pathfinder a un ID qui correspond à sa salle (chaque salle/porte a aussi un ID, le premier ID est 1 et non 0).
  5. Les chemins sont créés selon cette règle : chaque Pathfinder est déplacé sur la porte la plus proche avec ID-1 sauf si le Pathfinder a un ID=1 auquel cas il est déplacé vers la porte la plus proche ayant l’ID le plus grand.
  6. De plus, si la porte à laquelle le Pathfinder doit être relié est déjà reliée à un autre Pathfinder, le Pathfinder est déplacé jusqu’au chemin le plus proche.
  7. Chaque noeud de chemin crée un objet “Path” pour matérialiser les couloirs.

Pour clarifier un peu tout ça, si le donjon a 12 salles : la salle 1 est reliée à la salle 12, la 2 à la 1, la 3 à la 2, la 4 à la 3, etc.
Si par exemple la salle 3 a deux portes, elle a deux Pathfinder. Or la salle 2 n’a qu’une porte : le premier Pathfinder de 3 est reliée à la porte 2. Le deuxième Pathfinder, étant donné que sa porte cible est déjà reliée, est déplacé vers le chemin le plus proche.

Tout fonctionne plutôt bien. Le seul souci, c’est que mes salles sont des obstacles à la recherche de chemin. Or mes Pathfinder passent quand même à travers (voir l’image).

Savez-vous d’où provient ce problème, sachant que les chemins ne sont pas créés tant que toutes les salles et portes ont été créées ?
J’ai même ajouté des bordures supplémentaires au pathfinding.

Est-ce que tu as rendu tes carrés bleu infranchissables avec un événement sans conditions? Peut-être que ça marchera… Essayes pour voir! :smiley:

Non, ça ne marche pas, mais ce n’est pas très étonnant ! :smiley:

Les “carrés bleus” (les salles) sont des sprites de 16*16 px que je redimensionne en début de scène, peut-être que l’automatisme pathfinding n’en tient pas compte…mais ça me paraît bizarre. :frowning: