Gå til innhold

Kollisjonsdetektering med transparente bilder


Anbefalte innlegg

Hei!

 

Jeg holder på å lage et spill der både spilleren og objektene i spillet består av transparente (og animerte) PNG-bilder. Kollisjonsdetekteringen består nå av at jeg sjekker om to av bildene overlapper. Dersom de gjør det er det kollisjon.

 

Dette fører ofte til at spillet oppdager kollisjoner som for spilleren ikke ser ut som kollisjon fordi det er en del av det transparente området i et bilde som overlapper med et annet bilde.

 

Jeg ser for meg at en løsning på problemet innebærer å først gjøre sjekken jeg beskrev over, og deretter, hvis det er overlapping/kollisjon, gjøre en grundigere sjekk. Finnes det noe bedre løsning enn å sjekke piksel for piksel om bildene overlapper der begge bildene er ikke-transparente, eller finnes det bedre løsninger på problemet?

 

 

 

Anders

Lenke til kommentar
Videoannonse
Annonse
Jeg glemte å skrive at spillet er i 2D, men det sa seg kanskje selv...

6929815[/snapback]

 

Å drive med per pixel kollisjonstesting brenner utrolig mange CPU sykluser. En velbrukt approach er å kapsle inn bildet ditt i et objekt, som definerer en grense rundt den synlige delen av bildet (en eller flere firkanter).

 

En illustrasjon kan ses her:

http://www.programacion.com/cursos/ags_j2m...ges/image28.gif

 

Forresten samme fremgangsmåte for kollisjonshåndtering av komplekse objekter som i 3D (men man får en akse til å sjekke på).

 

 

PS: Hvis det er et J2ME spill, så er du kanskje interessert i denne artikkelen: http://developers.sun.com/techtopics/mobil...cles/gameapi/#8

MIDP 2.0 game API dekker det meste av dine behov

Endret av krigun
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...