Afegits rebots en la animació de morir

This commit is contained in:
2024-11-19 18:59:35 +01:00
parent 185a1b47d1
commit 700d3846fb

View File

@@ -182,12 +182,23 @@ void Player::move()
// Si el cadaver toca el suelo cambia el estado // Si el cadaver toca el suelo cambia el estado
if (player_sprite_->getPosY() > param.game.play_area.rect.h - HEIGHT_) if (player_sprite_->getPosY() > param.game.play_area.rect.h - HEIGHT_)
{ {
if (player_sprite_->getVelY() < 2.0f)
{
// Si la velocidad de rebote es baja, termina de rebotar y cambia de estado
setPlayingState(PlayerState::DIED); setPlayingState(PlayerState::DIED);
pos_x_ = player_sprite_->getPosX(); pos_x_ = player_sprite_->getPosX();
pos_y_ = default_pos_y_; pos_y_ = default_pos_y_;
player_sprite_->clear(); player_sprite_->clear();
shiftSprite(); shiftSprite();
} }
else
{
// Decrementa las velocidades de rebote
player_sprite_->setPosY(param.game.play_area.rect.h - HEIGHT_);
player_sprite_->setVelY(player_sprite_->getVelY() * -0.5f);
player_sprite_->setVelX(player_sprite_->getVelX() * 0.75f);
}
}
break; break;
} }
case PlayerState::LEAVING_SCREEN: case PlayerState::LEAVING_SCREEN: