XNA colisioni

di Anonimizzato10204 il
18 risposte
Che sistema si usa per valutare la collisione di due Sprite se la forma non è rettangolare?

18 Risposte

  • Stai parlando del 2D o del 3D?
  • 2D, ho degli Sprite in parte trasparenti e vorrei la collisione quando si urtano le parti visibili.
  • Ma quando parli di sprite cosa intendi delle Texture2D? Oppure ti sei creato delle classi Sprite che si tengono anche la posizione?
  • È vero ho preso spunto dal tutorial su XNA su questo sito e ho fatto una classe che contiene la posizione.
  • È vero ho preso spunto dal tutorial su XNA su questo sito e ho fatto una classe che contiene la posizione.
  • Pure io ho letto l' ultimo articolo sulle collisioni, dove viene considerata la collisione quando i due rettangoli si intersecano e mi sono fatto la stessa domanda.

    Beh, potrebbero esserci delle migliorie legate alla forma particolare della tua immagine, se ad esempio si trattasse di sfere potresti considerare la collisione quando la distanza tra i due oggetti è minore della somma dei raggi
  • Per le sfere ok, mi chiedevo come fare per forme irregolari.
  • Potresti vedere se la tua immagine è inscrivibile dentro un insieme di rettangoli o cerchi, poi visto che hai già una classe che incapsula lo sprite ti tieni questa lista di forme e vedi se intersecano l' altro oggetto.
  • Però quando rilevo la collisione questa è già avvenuta. Come faccio a beccare proprio il momento esatto?
  • Beh, tu conoscevi lo stato all' istante precedente, se le traiettorie sono semplici ad esempio traiettorie rettilinee, non ti dovrebbe essere difficile calcolare il momento esatto della collisione.
  • Si, però quel momento è già passato.
  • Beh, e tu fa due volte il calcolo.
  • Cosa intendi dire?
  • Prima calcoli l' istante in cui le due traiettorie si intersecano, calcoli le posizioni e le nuove direzioni a quell' istante, e poi (se non vi sono altre collisioni) calcoli la posizione al momento attuale. In pratica continui ad avanzare nel tempo di collisione in collisione fino ad arrivare al momento attuale.

    Non sono sicuro di essere stato chiarissimo
Devi accedere o registrarti per scrivere nel forum
18 risposte