Attualmente sto realizzando un gioco di difesa della torre 2d con una corsia statica e predeterminata che i nemici seguono (cioè le torri non possono bloccare il percorso e la ricerca del percorso non è il problema che sto cercando di risolvere).
Sto cercando di capire come far sì che le unità seguano questa corsia in modo fluido . Ho due idee approssimative su come farlo, ma mi piacerebbe qualche input su quale sia probabilmente più facile da implementare / la tecnica più standard. O ovviamente se avessi un modo totalmente diverso che non ho preso in considerazione, mi piacerebbe anche saperlo.
Waypoint: la mia prima idea è stata quella di definire il percorso come una serie di waypoint codificati. Le unità userebbero quindi un algoritmo di base "cercare" di guida (come questo ) per spostarsi su ciascun waypoint lungo il percorso in successione. Tuttavia, mi sono chiesto se potrebbe essere difficile impedire alle unità di deviare troppo dalla corsia che voglio che seguano. Mi chiedo se l'incapacità di girare abbastanza bruscamente potrebbe indurli a "scivolare" fuori dalla corsia desiderata. Immagino che potrei essere in grado di impedirlo, sebbene consentendo l'applicazione di una forza di governo relativamente forte?
Curve di Bezier: la seconda soluzione che ho considerato è quella di definire il percorso con una curva di Bezier e ad ogni passo il calcolo del punto lungo la curva è (dt * velocità) lontano dalla posizione corrente dell'unità. Sospetto che questa tecnica renderebbe molto più semplice definire con precisione il percorso che le unità seguiranno, ma non so esattamente come procedere per implementarlo. Eventuali suggerimenti?
Inoltre, ciò non cambierà le risposte di nessuno, ma anche le unità devono poter viaggiare a velocità costante lungo il percorso. Inoltre, sto programmando questo gioco in Python usando il framework Pyglet.
Se qualcosa sulla domanda non è chiaro, per favore fatemelo sapere.
Modifica: Anche per quanto valga, sto cercando di replicare il comportamento di movimento dei nemici nella Rush del Regno .