Je voudrais écrire un "jeu", où vous pouvez placer un obstacle (rouge), puis le point noir essaie de l'éviter et d'atteindre la cible verte.
J'utilise un moyen très simple pour l'éviter, si le point noir est proche du rouge, il change de direction et se déplace pendant un certain temps, puis il avance vers le point vert.
Comment pourrais-je créer un chemin "fluide" pour le "joueur" contrôlé par ordinateur?
Edit: la fluidité n'est pas le point principal, mais pour éviter le "mur" de blocage rouge et pour ne pas s'y écraser puis l' éviter.
Comment pourrais-je implémenter un algorithme de recherche de chemin si je n'ai que 3 points?
(Et qu'est-ce que cela rendrait les choses beaucoup plus compliquées, si vous pouviez placer plusieurs obstacles?)
la source
Les comportements de direction sont conçus pour à peu près cet ensemble de problèmes exact.
http://www.red3d.com/cwr/steer/
Fondamentalement, vous combineriez le comportement d'évitement d'obstacles avec probablement le comportement de recherche ou de poursuite. Cette page contient un tas d'animations java des différents comportements et de ce qu'ils font. Il existe plusieurs implémentations open source de comportements de pilotage. En voici un.
la source
Une chose facile à essayer est d'avoir un point invisible qui précède le point noir et exécute le chemin dans votre première image. Le point noir suit ensuite le point invisible à une petite distance derrière.
J'ai vu ce travail avec de bons résultats, mais bien sûr, il pourrait ne pas répondre à vos besoins.
la source