fix: no actualitzava correctament la caixa de colisions del jugador al canviar d'habitació

This commit is contained in:
2025-03-20 13:37:17 +01:00
parent d4acb38c05
commit 73008992e0

View File

@@ -202,26 +202,34 @@ void Player::checkState()
// Cambia al jugador de un borde al opuesto. Util para el cambio de pantalla // Cambia al jugador de un borde al opuesto. Util para el cambio de pantalla
void Player::switchBorders() void Player::switchBorders()
{ {
if (border_ == BORDER_TOP) switch (border_)
{ {
y_ = PLAY_AREA_BOTTOM - HEIGHT_ - 0 - BLOCK; case BORDER_TOP:
y_ = PLAY_AREA_BOTTOM - HEIGHT_ - BLOCK;
setState(PlayerState::STANDING); setState(PlayerState::STANDING);
} break;
else if (border_ == BORDER_BOTTOM)
{ case BORDER_BOTTOM:
y_ = PLAY_AREA_TOP + 0; y_ = PLAY_AREA_TOP;
setState(PlayerState::STANDING); setState(PlayerState::STANDING);
} break;
else if (border_ == BORDER_RIGHT)
{ case BORDER_RIGHT:
x_ = PLAY_AREA_LEFT + 0; x_ = PLAY_AREA_LEFT;
} break;
if (border_ == BORDER_LEFT)
{ case BORDER_LEFT:
x_ = PLAY_AREA_RIGHT - WIDTH_ - 0; x_ = PLAY_AREA_RIGHT - WIDTH_;
break;
default:
// Manejo para casos no previstos (opcional)
break;
} }
is_on_border_ = false; is_on_border_ = false;
placeSprite();
collider_box_ = getRect();
} }
// Aplica gravedad al jugador // Aplica gravedad al jugador