Eu gostaria de escrever um "jogo", onde você pode colocar um obstáculo (vermelho), e o ponto preto tenta evitá-lo e chegar ao alvo verde.
Estou usando uma maneira muito fácil de evitá-lo, se o ponto preto estiver próximo ao vermelho, ele muda de direção e se move por um tempo, depois avança para o ponto verde.
Como criar um caminho "suave" para o "player" controlado por computador?
Edit: Não a suavidade é o ponto principal, mas para evitar o bloqueio "parede" vermelho e não bater nele e , em seguida, evitá-lo.
Como eu poderia implementar algum algoritmo de localização de caminho se eu tivesse apenas 3 pontos?
(E o que tornaria as coisas muito mais complicadas, se você pudesse colocar vários obstáculos?)
fonte
Os comportamentos de direção são projetados para praticamente esse conjunto exato de problemas.
http://www.red3d.com/cwr/steer/
Basicamente, você combinaria o comportamento de evitar obstáculos com provavelmente o comportamento de busca ou busca. Essa página possui várias animações em java dos diferentes comportamentos e o que eles fazem. Existem várias implementações de código aberto de comportamentos de direção. Aqui está um.
fonte
Uma coisa fácil de tentar é ter um ponto invisível que vai à frente do ponto preto e executa o caminho na sua primeira imagem. O ponto preto segue o ponto invisível a uma pequena distância atrás.
Vi esse trabalho com bons resultados, mas é claro que pode não atender às suas necessidades.
fonte