SOFTWARE > Linguaggi di programmazione e scripting

Collisioni di oggetti 2d

(1/3) > >>

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

[#] Pagina successiva

Vai alla versione completa