forked from jaildesigner-jailgames/jaildoctors_dilemma
Las colisiones siguen fallando
This commit is contained in:
@@ -240,8 +240,14 @@ void Player::move()
|
||||
SDL_Rect proj;
|
||||
proj.x = (int)x;
|
||||
proj.y = (int)y;
|
||||
proj.h = h - 1;
|
||||
proj.h = h;
|
||||
proj.w = (int)vx;
|
||||
|
||||
// **new
|
||||
proj.x = (int)(x+vx);
|
||||
proj.y = (int)y;
|
||||
proj.h = h;
|
||||
proj.w = (int)abs(vx);
|
||||
|
||||
// Comprueba la colisión
|
||||
const int pos = room->checkRightSurfaces(&proj);
|
||||
@@ -252,8 +258,8 @@ void Player::move()
|
||||
x += vx;
|
||||
}
|
||||
else
|
||||
{ // Si hay colisión lo coloca donde colisiona
|
||||
x = pos;
|
||||
{ // Si hay colisión lo mueve hasta donde no colisiona
|
||||
x = pos + 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -264,7 +270,7 @@ void Player::move()
|
||||
SDL_Rect proj;
|
||||
proj.x = (int)x + w;
|
||||
proj.y = (int)y;
|
||||
proj.h = h - 1;
|
||||
proj.h = h;
|
||||
proj.w = (int)(vx);
|
||||
|
||||
// Comprueba la colisión
|
||||
@@ -276,7 +282,7 @@ void Player::move()
|
||||
x += vx;
|
||||
}
|
||||
else
|
||||
{ // Si hay colisión lo coloca donde colisiona
|
||||
{ // Si hay colisión lo mueve hasta donde no colisiona
|
||||
x = pos - w;
|
||||
}
|
||||
}
|
||||
@@ -295,7 +301,13 @@ void Player::move()
|
||||
proj.x = (int)x;
|
||||
proj.y = (int)y;
|
||||
proj.h = (int)vy;
|
||||
proj.w = w - 1;
|
||||
proj.w = w;
|
||||
|
||||
// **new
|
||||
proj.x = (int)x;
|
||||
proj.y = (int)(y+vy);
|
||||
proj.h = (int)abs(vy);
|
||||
proj.w = w;
|
||||
|
||||
// Comprueba la colisión
|
||||
const int pos = room->checkBottomSurfaces(&proj);
|
||||
@@ -306,8 +318,8 @@ void Player::move()
|
||||
y += vy;
|
||||
}
|
||||
else
|
||||
{ // Si hay colisión lo coloca donde colisiona y entra en caída
|
||||
y = pos;
|
||||
{ // Si hay colisión lo mueve hasta donde no colisiona y entra en caída
|
||||
y = pos + 1;
|
||||
setState(s_falling);
|
||||
}
|
||||
}
|
||||
@@ -320,7 +332,7 @@ void Player::move()
|
||||
proj.x = (int)x;
|
||||
proj.y = (int)y + h;
|
||||
proj.h = (int)vy;
|
||||
proj.w = w - 1;
|
||||
proj.w = w;
|
||||
|
||||
// Comprueba la colisión
|
||||
const int pos = room->checkTopSurfaces(&proj);
|
||||
@@ -331,7 +343,7 @@ void Player::move()
|
||||
y += vy;
|
||||
}
|
||||
else
|
||||
{ // Si hay colisión lo coloca donde colisiona y pasa a estar sobre el suelo
|
||||
{ // Si hay colisión lo mueve hasta donde no colisiona y pasa a estar sobre el suelo
|
||||
y = pos - h;
|
||||
setState(s_standing);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user