#include "main.h" void collisionDetect(GameState *game) { for(int i = 0; i < NUM_CAJAS; i++) { float mw = game->man.w, mh = game->man.h; float mx =game->man.x, my = game->man.y; float bx = game->suelo[i].x, by = game->suelo[i].y, bw = game->suelo[i].w, bh = game->suelo[i].h; if(mx+mw/2 > bx && mx+mw/2 by) { //correct y game->man.y = by+bh; my = by+bh; //bumped our head, stop any jump velocity game->man.dy = 0; } } if(mx+mw > bx && mx by && my < by) { //correct y game->man.y = by-mh; my = by-mh; //landed on this ledge, stop any jump velocity game->man.dy = 0; game->salto = 0; } } if(my+mh > by && my bx+bw) { //correct x game->man.x = bx+bw; mx = bx+bw; game->man.dx = 0; } //rubbing against left edge else if(mx+mw > bx && mx < bx) { //correct x game->man.x = bx-mw; mx = bx-mw; game->man.dx = 0; } } } }