fix: no actualitzava correctament la caixa de colisions del jugador al canviar d'habitació
This commit is contained in:
@@ -202,26 +202,34 @@ void Player::checkState()
|
||||
// Cambia al jugador de un borde al opuesto. Util para el cambio de pantalla
|
||||
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);
|
||||
}
|
||||
else if (border_ == BORDER_BOTTOM)
|
||||
{
|
||||
y_ = PLAY_AREA_TOP + 0;
|
||||
break;
|
||||
|
||||
case BORDER_BOTTOM:
|
||||
y_ = PLAY_AREA_TOP;
|
||||
setState(PlayerState::STANDING);
|
||||
}
|
||||
else if (border_ == BORDER_RIGHT)
|
||||
{
|
||||
x_ = PLAY_AREA_LEFT + 0;
|
||||
}
|
||||
if (border_ == BORDER_LEFT)
|
||||
{
|
||||
x_ = PLAY_AREA_RIGHT - WIDTH_ - 0;
|
||||
break;
|
||||
|
||||
case BORDER_RIGHT:
|
||||
x_ = PLAY_AREA_LEFT;
|
||||
break;
|
||||
|
||||
case BORDER_LEFT:
|
||||
x_ = PLAY_AREA_RIGHT - WIDTH_;
|
||||
break;
|
||||
|
||||
default:
|
||||
// Manejo para casos no previstos (opcional)
|
||||
break;
|
||||
}
|
||||
|
||||
is_on_border_ = false;
|
||||
placeSprite();
|
||||
collider_box_ = getRect();
|
||||
}
|
||||
|
||||
// Aplica gravedad al jugador
|
||||
|
||||
Reference in New Issue
Block a user