forked from jaildesigner-jailgames/jaildoctors_dilemma
Colisiones
This commit is contained in:
@@ -246,7 +246,7 @@ void Player::move()
|
|||||||
// **new
|
// **new
|
||||||
proj.x = (int)(x + vx);
|
proj.x = (int)(x + vx);
|
||||||
proj.y = (int)y;
|
proj.y = (int)y;
|
||||||
proj.h = h;
|
proj.h = h - 1;
|
||||||
proj.w = (int)abs(vx);
|
proj.w = (int)abs(vx);
|
||||||
|
|
||||||
// Comprueba la colisión
|
// Comprueba la colisión
|
||||||
@@ -264,13 +264,13 @@ void Player::move()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Se mueve hacia la derecha
|
// Se mueve hacia la derecha
|
||||||
if (vx > 0.0f)
|
else if (vx > 0.0f)
|
||||||
{
|
{
|
||||||
// Crea el rectangulo de proyección en el eje X para ver si colisiona
|
// Crea el rectangulo de proyección en el eje X para ver si colisiona
|
||||||
SDL_Rect proj;
|
SDL_Rect proj;
|
||||||
proj.x = (int)x + w;
|
proj.x = (int)x + w;
|
||||||
proj.y = (int)y;
|
proj.y = (int)y;
|
||||||
proj.h = h;
|
proj.h = h - 1;
|
||||||
proj.w = (int)(vx);
|
proj.w = (int)(vx);
|
||||||
|
|
||||||
// Comprueba la colisión
|
// Comprueba la colisión
|
||||||
@@ -307,7 +307,7 @@ void Player::move()
|
|||||||
proj.x = (int)x;
|
proj.x = (int)x;
|
||||||
proj.y = (int)(y + vy);
|
proj.y = (int)(y + vy);
|
||||||
proj.h = (int)abs(vy);
|
proj.h = (int)abs(vy);
|
||||||
proj.w = w;
|
proj.w = w - 1;
|
||||||
|
|
||||||
// Comprueba la colisión
|
// Comprueba la colisión
|
||||||
const int pos = room->checkBottomSurfaces(&proj);
|
const int pos = room->checkBottomSurfaces(&proj);
|
||||||
@@ -332,7 +332,7 @@ void Player::move()
|
|||||||
proj.x = (int)x;
|
proj.x = (int)x;
|
||||||
proj.y = (int)y + h;
|
proj.y = (int)y + h;
|
||||||
proj.h = (int)vy;
|
proj.h = (int)vy;
|
||||||
proj.w = w;
|
proj.w = w - 1;
|
||||||
|
|
||||||
// Comprueba la colisión
|
// Comprueba la colisión
|
||||||
const int pos = room->checkTopSurfaces(&proj);
|
const int pos = room->checkTopSurfaces(&proj);
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ bool checkCollision(h_line_t &l, SDL_Rect &r)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Comprueba si el inicio de la linea esta a la derecha del rectangulo
|
// Comprueba si el inicio de la linea esta a la derecha del rectangulo
|
||||||
if (l.x1 >= r.x + r.w)
|
if (l.x1 > r.x + r.w)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user