[Cherche]tutoriel pathfinding
Résolu
Bonjour,
Alors voilà j'ai créer une map en 3D isométrique avec FLASH et ACTIONSCRIPT.
Maintenant je cherche un tutoriel m'expliquant comment faire l'algorithme ASTAR en Actionscript.
En francais bien sur :) J'en ai trouvez plein en Anglais mais bon, c'est déjà assez dur comme ca :)
Car j'ai ajouté un petit personnage sauf qu'il n'évite aucun obstacle. Merci !
Alors voilà j'ai créer une map en 3D isométrique avec FLASH et ACTIONSCRIPT.
Maintenant je cherche un tutoriel m'expliquant comment faire l'algorithme ASTAR en Actionscript.
En francais bien sur :) J'en ai trouvez plein en Anglais mais bon, c'est déjà assez dur comme ca :)
Car j'ai ajouté un petit personnage sauf qu'il n'évite aucun obstacle. Merci !
A voir également:
- [Cherche]tutoriel pathfinding
- Tutoriel onedrive - Guide
- Tutoriel tableau croisé dynamique - Guide
- Franceconnect créer compte tutoriel - Guide
- Rufus tutoriel windows 11 - Guide
- Tutoriel signature électronique - Guide
1 réponse
Au pire tu utilises un algorithme de Dijkstra qui retourne un chemin optimal entre une source et une destination. Si ton univers est découpé en case, tu construis un graphe avec un sommet par case accessible par le personnage, et tu relies deux sommets avec un arc si les deux cases sont adjacentes. Ensuite tu mets un poids à chaque arc (1 si toutes les cases sont longues à traverser, une valeur autre si la notion de terrain impacte la vitesse de déplacement).
Supposons que tu es neuf case mais que la 8e soit un obstacle :
Ton graphe sera (si le personnage ne peut se déplacer que verticalement ou horizontalement) :
Une fois le graphe construit, il suffit de calculer un algorithme de Dijkstra partant de la case sur laquelle se trouve ton sommet. Par exemple si es sur la case 1 et que tu veux joindre la case 9, tu calcules un algorithme de DIjkstra depuis 1 et il retournera par exemple pour le sommet 9 le chemin 1,2,5,6,9.
L'avantage c'est que l'algorithme de Dijkstra est disponible presque partout (y compris sur wikipedia) ce qui évite de le coder.
Comme expliqué dans la page wikipedia suivante :
https://fr.wikipedia.org/wiki/Path-finding
... si des obstacles se déplacent sur le terrain ça devient plus compliqué, et un algorithme de type A* est peut être plus pertinent. Comme cet algorithme est moins répendu il faudra peut être faire l'effort de chercher en anglais, ou éplucher un cours d'intelligence artificielle.
Bonne chance
Supposons que tu es neuf case mais que la 8e soit un obstacle :
+-+-+-+ | | | | +-+-+-+ | | | | +-+-+-+ | |X| | +-+-+-+
Ton graphe sera (si le personnage ne peut se déplacer que verticalement ou horizontalement) :
1-2-3 | | | 4-5-6 | | 7 9
Une fois le graphe construit, il suffit de calculer un algorithme de Dijkstra partant de la case sur laquelle se trouve ton sommet. Par exemple si es sur la case 1 et que tu veux joindre la case 9, tu calcules un algorithme de DIjkstra depuis 1 et il retournera par exemple pour le sommet 9 le chemin 1,2,5,6,9.
L'avantage c'est que l'algorithme de Dijkstra est disponible presque partout (y compris sur wikipedia) ce qui évite de le coder.
Comme expliqué dans la page wikipedia suivante :
https://fr.wikipedia.org/wiki/Path-finding
... si des obstacles se déplacent sur le terrain ça devient plus compliqué, et un algorithme de type A* est peut être plus pertinent. Comme cet algorithme est moins répendu il faudra peut être faire l'effort de chercher en anglais, ou éplucher un cours d'intelligence artificielle.
Bonne chance