[pathfiding point and Clilc] Contourner un obstacle.
| Falco |
Posté le 19 Jan 2009 à 14:04
|
|
![]() Messages : 135 GCPoints : 20545 |
Bien le bonjour, Voila, je suis en train de concevoir un système de jeu Point and Clic pour le fun, et je suis bloqué sur un point assez fâcheux ; le Pathfiding. Pour le moment, j'ai fait : Lorsque je clic sur un endroit précis avec ma souris, je récupère les coordonnées du points cliqué, puis je soustrait/additionne les variables de coordonnées du héros afin qu'il se déplace précisément sur le point. De ce coté la, pas de problème, ça fonctionne parfaitement. Ensuite, j'ai placé une image sur ma map. Cette image représente la zone praticable, autrement dit, le héros ne peut marcher qu'a cet endroit. Si je clique en dehors de cette zone, le personnage s'avancera au bord de cet image, mais ne pourra en aucuns cas la traverser. Ça fonctionne également. Voila le plus dur arrive, comment faire pour que si je clique sur un point, et puis qu'entre le héros et ce point, il y ai un obstacle, que le héros décide par lui même de contourner ce point ? J'ai jamais été vraiment fort en logique ^^" Si vous pouvez, essayez de ne pas me donner un truc trop compliqué, je débute en programmation :p Merci par avance :) |
|
| Gulix |
Posté le 19 Jan 2009 à 14:16
|
|
![]() Messages : 184 GCPoints : 8860 |
Tu as plusieurs solutions. L'algorithme A* tout d'abord. Il te permet de définir des chemins sur des environnements de type quadrillé. Il y a une autre solution, qui consiste à définir des points de passage sur ton terrain, avec un chemin en ligne droite non interrompue entre tous tes points. Tu obtiendras un graphe, et tu pourras calculer le chemin le plus court en inspectant les différents points.
"Bien souvent, l'école représente votre meilleure chance. Non pas d'apprendre quoi que ce soit, bien sûr, mais de survivre à une attaque de morts-vivants".
Max Brooks - Guide de survie en territoire zombie Mon Blog, mélange de prog' et de culture Blind Shark - Pull N' Bounce |
|
| Falco |
Posté le 19 Jan 2009 à 14:19
|
|
![]() Messages : 135 GCPoints : 20545 |
Hum, d'accord, et la plus simple, c'est laquelle ? :p Du moins, la plus facile à mettre en place. Merci. |
|
| Mod |
Posté le 19 Jan 2009 à 14:35
|
|
![]() Messages : 4954 GCPoints : 2100823 |
Je dirais que A* est plus simple car utilisant les données de la map déjà établie (si map quadrillée, bien sûr), là où l'autre méthode demande de générer un graphe et de l'explorer (là ce serait bon pour un algo Djikstra). Dans un cas comme dans l'autre ça peut assez rapidement être un gouffre à ressource. Ca pourrait être utile de savoir sur quelle plateforme tu comptes faire cela. |
|
| Falco |
Posté le 19 Jan 2009 à 14:46
|
|
![]() Messages : 135 GCPoints : 20545 |
Je travaille sous MMF2, je pensais pouvoir faire un truc potable avec des coordonnées X et Y, mais apparemment, c'est bien plus complexe. Sinon, je viens de trouver la technique qu'ont utilisés Lucas Arts pour SCUMM : Citation :
|
|
| Darktib |
Posté le 19 Jan 2009 à 16:01
|
|
![]() Messages : 4017 GCPoints : 347288 |
Cherche astar sur le net, c'est l'lgo le plus utilisé dans les jeux car il est tres performant. J'ai réalisé une bibliothèque pour darkBASIC qui fait ca (voir ma signature, ou la zone des projets, c'est IA::Astar) et tu peux facilement mettre moins d'une milliseconde pour faire cette recherche. Si MMF2 permet d'utiliser directement une dll tu devrrait pouvoir l'utiliser, sinon cherche un article de Patrick Lester sur A*, il est connu , assez traduit et tres fiable. A noter que A* ne demande pas toujours une map quadrillée. |
|
| Zoglu |
Posté le 19 Jan 2009 à 18:44
|
|
![]() Messages : 366 GCPoints : 22183 |
Il y a un objet Pathfinder dans MMF2, qui utilise l'algo A*, donc pas besoin de trop te fouler Si tu ne l'as pas, tu la trouveras dans ce pack. |
|




