Actualmente estoy haciendo un juego de defensa de torre 2D con un carril estático predeterminado que los enemigos siguen (es decir, las torres no pueden bloquear el camino y encontrar el camino no es el problema que estoy tratando de resolver).
Estoy tratando de imaginar cómo exactamente hacer que las unidades sigan este carril de una manera suave . Tengo dos ideas aproximadas sobre cómo hacer esto, pero me encantaría recibir información sobre la que sea más fácil de implementar / la técnica más estándar. O, por supuesto, si hay una forma totalmente diferente que no he considerado, me encantaría aprender sobre eso también.
Waypoints: mi primera idea fue definir el camino como una serie de waypoints codificados. Las unidades luego usarían un algoritmo de dirección de "búsqueda" básico (como este ) para moverse a cada punto de referencia a lo largo del camino en sucesión. Sin embargo, me he preguntado si sería difícil evitar que las unidades se desvíen demasiado del carril que quiero que sigan. Me pregunto si la incapacidad de girar lo suficiente puede hacer que se "salgan" del carril deseado. ¿Supongo que podría evitar eso si permitiera que se aplicara una fuerza de dirección relativamente fuerte?
Curvas de Bezier: La segunda solución que he considerado es definir el camino con una curva de Bezier y, en cada paso de tiempo, calcular el punto a lo largo de la curva con (dt * velocidad) lejos de la ubicación actual de la unidad. Sospecho que esta técnica haría mucho más fácil definir con precisión el camino que seguirán las unidades, pero no sé exactamente cómo implementarlo. ¿Alguna sugerencia?
Además, no creo que esto cambie las respuestas de nadie, pero las unidades también deben poder viajar a una velocidad constante a lo largo del camino. Además, estoy programando este juego en Python usando el marco de Pyglet.
Si algo sobre la pregunta no está claro, hágamelo saber.
Editar: También para lo que sea que valga, estoy tratando de replicar el comportamiento de movimiento de los enemigos en el Kingdom Rush .