Voy a implementar una clase para mostrar el informacion de debug en pantalla

This commit is contained in:
2022-09-06 11:25:30 +02:00
parent 16ae06a755
commit 7e9daddbb6
2 changed files with 8 additions and 55 deletions

View File

@@ -240,35 +240,20 @@ void Player::move()
// Comprueba colisiones con rampas // Comprueba colisiones con rampas
else else
{ {
tile_e slope = checkUpSlopes(); tile_e slope = checkSlopes();
if (slope != t_empty) if (slope != t_empty)
{ // Se mueve hacia la derecha y cuesta hacia la derecha { // Cuesta hacia la derecha
if (sprite->getFlip() == SDL_FLIP_NONE && slope == t_slope_r) if (slope == t_slope_r)
{ // Recoloca { // Recoloca
y = -h + room->getSlopeHeight(feet[1], t_slope_r); y = -h + room->getSlopeHeight(feet[1], t_slope_r);
} }
// Se mueve hacia la izquierda y cuesta hacia la izquierda // Cuesta hacia la izquierda
if (sprite->getFlip() == SDL_FLIP_HORIZONTAL && slope == t_slope_l) if (slope == t_slope_l)
{ // Recoloca { // Recoloca
y = -h + room->getSlopeHeight(feet[0], t_slope_l); y = -h + room->getSlopeHeight(feet[0], t_slope_l);
} }
} }
slope = checkDownSlopes();
if (slope != t_empty)
{ // Se mueve hacia la derecha y cuesta hacia la izquierda
if (sprite->getFlip() == SDL_FLIP_NONE && slope == t_slope_l)
{ // Recoloca
y = -h + room->getSlopeHeight(underFeet[0], t_slope_l);
}
// Se mueve hacia la izquierda y cuesta hacia la derecha
if (sprite->getFlip() == SDL_FLIP_HORIZONTAL && slope == t_slope_r)
{ // Recoloca
y = -h + room->getSlopeHeight(underFeet[1], t_slope_r);
}
}
} }
y += vy; y += vy;
@@ -345,7 +330,7 @@ void Player::move()
} }
} }
// EXPERIMENTAL // EXPERIMENTAL
else if (checkUpSlopes() || checkDownSlopes()) else if (checkSlopes())
{ {
state = s_standing; state = s_standing;
vy = 0.0f; vy = 0.0f;
@@ -413,7 +398,7 @@ bool Player::checkWalls()
} }
// Comprueba si el jugador está en una rampa // Comprueba si el jugador está en una rampa
tile_e Player::checkUpSlopes() tile_e Player::checkSlopes()
{ {
// Actualiza los puntos de colisión // Actualiza los puntos de colisión
updateFeet(); updateFeet();
@@ -441,35 +426,6 @@ tile_e Player::checkUpSlopes()
return t_empty; return t_empty;
} }
// Comprueba si el jugador está en una rampa
tile_e Player::checkDownSlopes()
{
// Actualiza los puntos de colisión
updateFeet();
bool slope_l = false;
bool slope_r = false;
// Comprueba si ha colisionado con una rampa
for (auto f : underFeet)
{
slope_l |= (room->getTile(f) == t_slope_l);
slope_r |= (room->getTile(f) == t_slope_r);
}
if (slope_l)
{
return t_slope_l;
}
if (slope_r)
{
return t_slope_r;
}
return t_empty;
}
// Obtiene algunos parametros del jugador // Obtiene algunos parametros del jugador
player_t Player::getSpawnParams() player_t Player::getSpawnParams()
{ {

View File

@@ -91,10 +91,7 @@ public:
bool checkWalls(); bool checkWalls();
// Comprueba si el jugador está en una rampa // Comprueba si el jugador está en una rampa
tile_e checkUpSlopes(); tile_e checkSlopes();
// Comprueba si el jugador está en una rampa
tile_e checkDownSlopes();
// Actualiza los puntos de colisión // Actualiza los puntos de colisión
void updateColliderPoints(); void updateColliderPoints();