fix: en Player::handleRecoverMovement() es reproduía voice_recover.wav constantment
This commit is contained in:
@@ -196,7 +196,10 @@ void Player::handlePlayingMovement(float delta_time) {
|
||||
}
|
||||
|
||||
void Player::handleRecoverMovement() {
|
||||
if (player_sprite_->getCurrentAnimationFrame() == 10) { playSound("voice_recover.wav"); }
|
||||
if (player_sprite_->getCurrentAnimationFrame() == 10 && !recover_sound_triggered_) {
|
||||
playSound("voice_recover.wav");
|
||||
recover_sound_triggered_ = true;
|
||||
}
|
||||
if (player_sprite_->animationIsCompleted()) { setPlayingState(State::RESPAWNING); }
|
||||
}
|
||||
|
||||
@@ -559,6 +562,7 @@ void Player::setPlayingState(State state) {
|
||||
|
||||
switch (playing_state_) {
|
||||
case State::RECOVER: {
|
||||
recover_sound_triggered_ = false;
|
||||
score_ = 0; // Pon los puntos a cero para que no se vea en el marcador
|
||||
score_multiplier_ = 1.0F;
|
||||
setScoreboardMode(Scoreboard::Mode::SCORE);
|
||||
|
||||
@@ -190,7 +190,6 @@ class Player {
|
||||
[[nodiscard]] auto getZOrder() const -> size_t { return z_order_; }
|
||||
void setZOrder(size_t z_order) { z_order_ = z_order; }
|
||||
|
||||
|
||||
// Puntuación y juego
|
||||
[[nodiscard]] auto getScore() const -> int { return score_; }
|
||||
[[nodiscard]] auto getScoreMultiplier() const -> float { return score_multiplier_; }
|
||||
@@ -328,6 +327,7 @@ class Player {
|
||||
bool demo_ = false; // Para que el jugador sepa si está en el modo demostración
|
||||
bool game_completed_ = false; // Indica si ha completado el juego
|
||||
bool uses_keyboard_ = false; // Indica si usa el teclado como dispositivo de control
|
||||
bool recover_sound_triggered_ = false; // Indica si ya ha sonado el sonido en el estado RECOVER
|
||||
|
||||
// --- Métodos internos ---
|
||||
void shiftColliders(); // Actualiza el círculo de colisión a la posición del jugador
|
||||
|
||||
Reference in New Issue
Block a user