SOFTWARE > Linguaggi di programmazione e scripting
Collisioni di oggetti 2d
Thejuster:
Salve a tutti specialmente a TheKaneB :D
chiedo a lui specialmente, essendo un esperto in questo settore può aiutarmi.
Ho un piccolo problemino con il mio algoritmo di collisioni di 2 oggetti in DirectX
e non capisco perché non funziona a dovere
Struttura degli ostacoli
--- Codice: ---List<_obstacle> Ostacoli = new List<_obstacle>();
public struct _obstacle
{
public int id;
public int x;
public int y;
}
--- Termina codice ---
semplice algoritmo
--- Codice: ---
for(int i = 0; i < Ostacoli.Count; i++)
{
//Verifica
if( Tizio_X >= Ostacoli[i].x && Tizio_X <= Ostacoli[i].x + 32 && Tizio_Y >= Ostacoli[i].y && Tizio_Y <= Ostacoli[i].y + 32)
{
// Collisione
}
}
--- Termina codice ---
Cosa succede?
Succede che la collisione su asse Y viene rilevata ma su X no.
Quindi il player gli passa per mezzo ma non lo supera.
ecco un esempio di cosa succede
Cosa c'è di sbagliato?
PS: Il player misura 32x64 px gli ostacoli 32x32
Allanon:
Benvenuto :)
Potrebbe essere che non prendi in considerazione le dimensioni di Tizio?
--- Codice: ---Pseudo codice
If Tizio.x+Tizio.w > Ostacolo.x And
Tizio.x < Ostacolo.x+Ostacolo.w And
Tizio.y+Tizio.h > Ostacolo.y And
Tizio.y < Ostacolo.y+Ostacolo.h
COLLISIONE
EndIf
--- Termina codice ---
Thejuster:
Salve allanon. ;D
Non ci avevo pensato di fare un questo modo.
Appena posso provo subito grazie ancora :D
Allanon:
@legacy
metti dei sensori di "scassamento" così se ne accorge subito! ;D
Thejuster:
Grazie mille Allanon funziona pefettamente ;D ;D ;D
Se cmq puo interessare ecco io mio prpgettino
http://m.youtube.com/#/watch?v=6sQInPfAQhU
Navigazione
[0] Indice dei post
Vai alla versione completa