Je fais actuellement un jeu de tower defense 2D avec une voie statique prédéterminée que les ennemis suivent (c'est-à-dire que les tours ne peuvent pas bloquer le chemin et la recherche de chemin n'est pas le problème que j'essaie de résoudre).
J'essaie de comprendre exactement comment faire en sorte que les unités suivent cette voie de manière fluide . J'ai deux idées approximatives sur la façon de procéder, mais j'aimerais avoir des informations sur ce qui sera probablement plus facile à mettre en œuvre / la technique plus standard. Ou bien sûr, s'il y a une manière totalement différente que je n'ai pas envisagée, j'aimerais aussi en savoir plus.
Waypoints: Ma première idée a été de définir le chemin comme une série de waypoints codés en dur. Les unités utiliseraient alors un algorithme de pilotage de base "rechercher" (comme celui- ci) pour se déplacer successivement vers chaque waypoint le long du chemin. Cependant, je me suis demandé s'il ne serait pas difficile d'empêcher les unités de s'écarter trop de la voie que je veux qu'elles suivent. Je me demande si l'incapacité de tourner suffisamment brusquement pourrait les amener à "glisser" hors de la voie souhaitée. Je suppose que je pourrais peut-être empêcher cela en permettant l'application d'une force de direction relativement forte?
Courbes de Bézier: La deuxième solution que j'ai envisagée consiste à définir le chemin avec une courbe de Bézier et à chaque pas de temps calculer le point le long de la courbe avec est (dt * vitesse) loin de l'emplacement actuel de l'unité. Je soupçonne que cette technique faciliterait la définition précise du chemin que les unités suivront, mais je ne sais pas exactement comment procéder pour l'implémenter. Aucune suggestion?
De plus, je ne pense pas que cela changera les réponses de quiconque, mais les unités doivent également pouvoir voyager à une vitesse constante le long du chemin. De plus, je programme ce jeu en python en utilisant le framework pyglet.
Si quelque chose au sujet de la question n'est pas clair, faites-le moi savoir.
Edit: Aussi, quelle que soit sa valeur, j'essaie en quelque sorte de reproduire le comportement de mouvement des ennemis dans Kingdom Rush .