Salut,
J'ai fait un pathfinder maison qui correspond à ce dont j'ai besoin par volonté de tout faire moi-même, mais je rencontre une légère difficulté.
Je précise que je suis sur grille isométrique !
Au départ le pathfinder s'étale du point d'arrivée (là où je vais cliquer) jusqu’à ce qu'il trouve le joueur. Il suit les cases "marchables", de la sorte j'obtiens une liste des cellules réduite contenant à coup sûr un chemin.
À chaque nouvelle couche, j'ajoute un "niveau" à la case ainsi que sa distance entre elle et le joueur.
(je n'utilise pas le niveau de la case dans mon code mais bon, je le virerais après si je n'en ai vraiment pas besoin)
Ensuite, il va partir du point où je clique et passer de cases adjacentes en cases adjacentes en les préférant à leur distance avec le point où se situe le joueur, mais il ajoutera la case précédente à une liste "path" pour ne pas passer deux fois par le même endroit.
Si par exemple il y a un cul de sac qui semblait être le chemin idéal, le pathfinder va passer sa case dans une liste d'exclusions, petit-à-petit il va démonter son chemin jusqu’à trouver des cases n'étant ni dans le path ni dans la liste d'exclusions. Ensuite, il va continuer et fatalement trouver le chemin.
Cela marche extrêmement bien, j'en suis assez content. Le soucis c'est qu'il peut rester des traces du chemin passé.
J'ai ajouté des images, je ne sais pas où elles vont apparaitre, je ne suis pas encore familiarisé avec ce forum.
légende : en vert la case ciblée, en bleu le path et en rouge l'exclusion.
Donc ma question serait : comment savoir quelles cases me rallongent inutilement le chemin ?
Je pense faire des fils tendus, ou plutôt des rayons dans les cases bleues afin de repérer les lignes droites ou zones pouvant ne pas être traversées mais j'ai peur que cela soit un peu lourd. Vos avis ? Comment feriez-vous à ma place en utilisant la base que j'ai fait ?
Si j'ai été imprécis sur des faits dites-le moi.
Je vous remercie de votre aide
Partager