From a90db3b7b6e87e24c789b5db222f1cef92809bde Mon Sep 17 00:00:00 2001 From: Thomas Guillermo Albers Raviola Date: Fri, 16 Jan 2026 19:38:33 +0100 Subject: Initial commit --- original/colisiones.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 original/colisiones.c (limited to 'original/colisiones.c') diff --git a/original/colisiones.c b/original/colisiones.c new file mode 100644 index 0000000..52b69be --- /dev/null +++ b/original/colisiones.c @@ -0,0 +1,60 @@ +#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; + } + } + } +} -- cgit v1.2.3