Existen dos tipos de colisiones:
1-Colisiones entre sprites
2-Colisiones de sprites contra Tiles
Cuando queremos detectar una colisión entre sprites, solo necesitamos saber si dos rectángulos (área que rodea cada sprite) se toca.
El algoritmo funciona de manera que detecta si hay un agujero en alguno de los 4 lados del rectangulo.
void checkcoll(){ if(miPersonaje.posx < enemigo.posx +enemigo.width && miPersonaje.posx +miPersonaje.width > enemigo.posx && miPersonaje.posy < enemigo.posy + enemigo.height && miPersonaje.height + miPersonaje.posy > enemigo.posy) { VDP_drawText("colision",0,20); VDP_clearTextLine(0); } else{ VDP_clearTextLine(20); VDP_drawText("No colision",0,0); } }
Link al mi código de ejemplo https://github.com/robertofocke/Ejemplo-collision-sprite
Fuente: https://developer.mozilla.org/es/docs/Games/Techniques/2D_collision_detection