Me gustaría escribir un "juego", donde puedes colocar un obstáculo (rojo), y luego el punto negro intenta evitarlo y llegar al objetivo verde.
Estoy usando una forma muy fácil de evitarlo, si el punto negro está cerca del rojo, cambia su dirección y se mueve por un tiempo, luego avanza hacia el punto verde.
¿Cómo podría crear una ruta "suave" para el "jugador" controlado por computadora?
Editar: No es la suavidad el punto principal, pero para evitar el "muro" de bloqueo rojo y no chocar contra él y luego evitarlo.
¿Cómo podría implementar algún algoritmo de búsqueda de ruta si solo tengo básicamente 3 puntos?
(¿Y qué haría las cosas mucho más complicadas si pudieras colocar múltiples obstáculos?)
fuente
Los comportamientos de dirección están diseñados para este conjunto de problemas exactos.
http://www.red3d.com/cwr/steer/
Básicamente, combinaría el comportamiento para evitar obstáculos con probablemente el comportamiento de búsqueda o persecución. Esa página tiene un montón de animaciones java de los diferentes comportamientos y lo que hacen. Hay varias implementaciones de código abierto de comportamientos de dirección. Aquí hay uno.
fuente
Una cosa fácil de probar es tener un punto invisible que se adelanta al punto negro y ejecuta la ruta en su primera imagen. El punto negro sigue al punto invisible a una pequeña distancia detrás.
He visto este trabajo con buenos resultados pero, por supuesto, podría no satisfacer sus necesidades.
fuente