Recentemente ho preso il monogame e sto lavorando a un semplice gioco top down per farmi iniziare e imparare le basi.
Ho il movimento e la rotazione per seguire il mouse risolto, ma sono bloccato con le collisioni.
Quello che voglio sapere, in sostanza, sono due cose:
- Quale sarebbe il modo migliore per gestire le collisioni? So che
Rectangle.Intersects(Rectangle1, Rectangle2)
restituisce il rettangolo sovrapposto, ma, poiché il movimento in alto verso il basso è sull'asse x / y, vorrei sapere dove si sta verificando la collisione in modo da poter creare una sorta di "scorrimento a parete" dove il giocatore non ottiene bloccato al muro.
Controllare le coordinate del giocatore x / y rispetto alle coordinate degli oggetti solidi, quindi lanciare il giocatore nella sua posizione precedente se entra nei limiti di un oggetto solido è davvero l'approccio migliore? Che cosa suggeriresti? - Quale sarebbe il modo migliore per applicare le collisioni a tutti i solidi, agli npc ecc.? Attualmente sto pensando di creare una
gameObject
classe da cui tutti gli oggetti erediteranno e gestiranno semplicemente le collisioni lì.
Grazie per aver letto e spero che qualcuno possa darmi qualche consiglio.