[C/C++] Problème de pathfinding

Le côté programmation du développement d'un jeu vidéo.

Problème de pathfinding

Messagepar bombseb » 04 Aoû 2014, 17:42

Bonjour,

Je viens d’implémenter l'algorithme A* pour le pathfinding des ennemis de mon jeu. Le problème c'est que le calcul du chemin est très lent parceque mes personnages ne se déplacent pas par tile mais au pixel près.
Ma map fait 100 tiles de largeur par 100 tiles de hauteur avec des tiles de 32px*32px.

Est-ce que vous auriez un conseil à me donner parceque là je ne vois pas du tout comment faire.... le calcul d'un chemin de 200 pixels peut prendre 15 ou 20 secondes s'il y a des obstacle a éviter.

Merci d'avance

PS : Pour info, j'utilise déja un quadtree pour la détection des collisions.
bombseb
Hello World, I'm new !
 
Messages: 9
Inscription: 25 Aoû 2005, 11:52

Re: Problème de pathfinding

Messagepar teto » 04 Aoû 2014, 21:43

Est-ce important de calculer le A* avec une précision au pixel près ? sinon augmente la résolution , découpe l'environnement en carrés.
Avatar de l’utilisateur
teto
 
Messages: 1168
Inscription: 26 Juil 2005, 19:02
Localisation: /home/Paris

Re: Problème de pathfinding

Messagepar bombseb » 05 Aoû 2014, 16:09

Salut,

Oui finalement j'ai modifié ma fonction pour que les ennemis se déplacent tile par tile...et c'est quasi instantané.
Du coup maintenant j'ai un autre problème, il faut que mes personnages se déplacent progressivement entre deux tiles pas évident à mettre en place...
Si tu a un conseil pour faire ca serais cool
bombseb
Hello World, I'm new !
 
Messages: 9
Inscription: 25 Aoû 2005, 11:52

Re: Problème de pathfinding

Messagepar teto » 11 Aoû 2014, 18:07

Tu peux trouver les points d'entrée A et sortie B de ta *tuile*, et faire avancer ton perso de vitesse * vecteur(AB)/dist(AB).
Un très bon article (d'un site bien sympa) qui peut t'inspirer sur d'autres méthodes:
http://www.ai-blog.net/archives/000152.html
Avatar de l’utilisateur
teto
 
Messages: 1168
Inscription: 26 Juil 2005, 19:02
Localisation: /home/Paris


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 23 invités