Sto cercando di implementare un sistema di collisione in un gioco 2D che sto realizzando. Il teorema dell'asse di separazione (come descritto dal tutorial sulla collisione della metanet ) sembra un modo efficiente e robusto di gestire il rilevamento delle collisioni, ma non mi piace molto il metodo di risposta alle collisioni che usano. Spostandosi ciecamente lungo l'asse di minima sovrapposizione, l'algoritmo ignora semplicemente la posizione precedente dell'oggetto in movimento, il che significa che non si scontra con l'oggetto fermo tanto quanto entra in esso e poi rimbalza.
Ecco un esempio di una situazione in cui questo avrebbe importanza:
Secondo il metodo SAT sopra descritto, il rettangolo sarebbe semplicemente fuoriuscito dal triangolo perpendicolare alla sua ipotenusa:
Tuttavia, realisticamente, il rettangolo dovrebbe fermarsi nell'angolo in basso a destra del triangolo, poiché quello sarebbe il punto di prima collisione se si muovesse continuamente lungo il suo vettore di spostamento:
Ora, questo potrebbe non avere importanza durante il gioco, ma mi piacerebbe sapere se esiste un modo per ottenere in modo efficiente e generalmente spostamenti accurati in questo modo. Ci ho messo il cervello da qualche giorno, e non voglio ancora arrendermi!
(Trasmissione incrociata da StackOverflow, spero che non sia contro le regole!)