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
|
// 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
|
||||||
|
|||||||
Reference in New Issue
Block a user