AHORA SI: Colisiones finalizadas

This commit is contained in:
2022-09-09 14:01:49 +02:00
parent 00b47a5910
commit 36fc848779
3 changed files with 10 additions and 41 deletions

View File

@@ -238,16 +238,10 @@ void Player::move()
{
// Crea el rectangulo de proyección en el eje X para ver si colisiona
SDL_Rect proj;
proj.x = (int)x;
proj.y = (int)y;
proj.h = h;
proj.w = (int)vx;
// **new
proj.x = (int)(x + vx);
proj.y = (int)y;
proj.h = h - 1;
proj.w = (int)abs(vx);
proj.w = ceil(abs(vx)); // Para evitar que tenga un ancho de 0 pixels
// Comprueba la colisión
const int pos = room->checkRightSurfaces(&proj);
@@ -271,7 +265,7 @@ void Player::move()
proj.x = (int)x + w;
proj.y = (int)y;
proj.h = h - 1;
proj.w = (int)(vx);
proj.w = ceil(vx); // Para evitar que tenga un ancho de 0 pixels
// Comprueba la colisión
const int pos = room->checkLeftSurfaces(&proj);
@@ -299,14 +293,8 @@ void Player::move()
// Crea el rectangulo de proyección en el eje X para ver si colisiona
SDL_Rect proj;
proj.x = (int)x;
proj.y = (int)y;
proj.h = (int)vy;
proj.w = w;
// **new
proj.x = (int)x;
proj.y = (int)(y + vy);
proj.h = (int)abs(vy);
proj.h = ceil(abs(vy)); // Para evitar que tenga una altura de 0 pixels
proj.w = w - 1;
// Comprueba la colisión
@@ -331,7 +319,7 @@ void Player::move()
SDL_Rect proj;
proj.x = (int)x;
proj.y = (int)y + h;
proj.h = (int)vy;
proj.h = ceil(vy); // Para evitar que tenga una altura de 0 pixels
proj.w = w - 1;
// Comprueba la colisión