forked from jaildesigner-jailgames/jaildoctors_dilemma
Colisiones
This commit is contained in:
@@ -242,11 +242,11 @@ void Player::move()
|
||||
proj.y = (int)y;
|
||||
proj.h = h;
|
||||
proj.w = (int)vx;
|
||||
|
||||
|
||||
// **new
|
||||
proj.x = (int)(x+vx);
|
||||
proj.x = (int)(x + vx);
|
||||
proj.y = (int)y;
|
||||
proj.h = h;
|
||||
proj.h = h - 1;
|
||||
proj.w = (int)abs(vx);
|
||||
|
||||
// Comprueba la colisión
|
||||
@@ -264,13 +264,13 @@ void Player::move()
|
||||
}
|
||||
|
||||
// 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
|
||||
SDL_Rect proj;
|
||||
proj.x = (int)x + w;
|
||||
proj.y = (int)y;
|
||||
proj.h = h;
|
||||
proj.h = h - 1;
|
||||
proj.w = (int)(vx);
|
||||
|
||||
// Comprueba la colisión
|
||||
@@ -303,11 +303,11 @@ void Player::move()
|
||||
proj.h = (int)vy;
|
||||
proj.w = w;
|
||||
|
||||
// **new
|
||||
// **new
|
||||
proj.x = (int)x;
|
||||
proj.y = (int)(y+vy);
|
||||
proj.y = (int)(y + vy);
|
||||
proj.h = (int)abs(vy);
|
||||
proj.w = w;
|
||||
proj.w = w - 1;
|
||||
|
||||
// Comprueba la colisión
|
||||
const int pos = room->checkBottomSurfaces(&proj);
|
||||
@@ -332,7 +332,7 @@ void Player::move()
|
||||
proj.x = (int)x;
|
||||
proj.y = (int)y + h;
|
||||
proj.h = (int)vy;
|
||||
proj.w = w;
|
||||
proj.w = w - 1;
|
||||
|
||||
// Comprueba la colisión
|
||||
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
|
||||
if (l.x1 >= r.x + r.w)
|
||||
if (l.x1 > r.x + r.w)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user