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,11 +182,22 @@ void Player::move()
// Si el cadaver toca el suelo cambia el estado
if (player_sprite_->getPosY() > param.game.play_area.rect.h - HEIGHT_)
{
setPlayingState(PlayerState::DIED);
pos_x_ = player_sprite_->getPosX();
pos_y_ = default_pos_y_;
player_sprite_->clear();
shiftSprite();
if (player_sprite_->getVelY() < 2.0f)
{
// Si la velocidad de rebote es baja, termina de rebotar y cambia de estado
setPlayingState(PlayerState::DIED);
pos_x_ = player_sprite_->getPosX();
pos_y_ = default_pos_y_;
player_sprite_->clear();
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;
}