Atualmente, estou fazendo um jogo de defesa em torre 2D com uma pista estática e predeterminada que os inimigos seguem (ou seja, torres não podem bloquear o caminho e encontrar o caminho não é o problema que estou tentando resolver).
Estou tentando descobrir exatamente como fazer as unidades seguirem essa faixa de maneira suave . Tenho duas idéias aproximadas sobre como fazer isso, mas gostaria de algumas sugestões sobre as quais provavelmente será mais fácil de implementar / a técnica mais padrão. Ou, é claro, se houver uma maneira totalmente diferente que não considerei, eu adoraria aprender sobre isso também.
Waypoints: Minha primeira idéia foi definir o caminho como uma série de waypoints codificados. As unidades usariam então um algoritmo básico de direção "procurar" (como este ) para mover-se para cada waypoint ao longo do caminho em sucessão. No entanto, eu me perguntei se seria difícil impedir que as unidades se desviassem para muito da faixa que eu quero que elas sigam. Eu me pergunto se a incapacidade de virar bruscamente o suficiente pode levá-los a "deslizar" para fora da pista desejada. Suponho que posso evitar isso, permitindo que uma força de direção relativamente forte seja aplicada?
Curvas de Bezier: A segunda solução que considerei é definir o caminho com uma curva de bezier e, a cada passo do tempo, calcular o ponto ao longo da curva com (dt * velocidade) distante da localização atual da unidade. Suspeito que essa técnica facilitaria muito a definição precisa do caminho que as unidades seguirão, mas não sei exatamente como implementar isso. Alguma sugestão?
Além disso, isso não mudará as respostas de ninguém, mas as unidades também devem poder viajar a uma velocidade constante ao longo do caminho. Além disso, estou programando este jogo em python usando a estrutura pyglet.
Se algo sobre a questão não estiver claro, entre em contato.
Edit: Também por qualquer que seja o valor, estou tentando replicar o comportamento de movimento dos inimigos na Kingdom Rush .