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() {
|
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); }
|
if (player_sprite_->animationIsCompleted()) { setPlayingState(State::RESPAWNING); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -559,6 +562,7 @@ void Player::setPlayingState(State state) {
|
|||||||
|
|
||||||
switch (playing_state_) {
|
switch (playing_state_) {
|
||||||
case State::RECOVER: {
|
case State::RECOVER: {
|
||||||
|
recover_sound_triggered_ = false;
|
||||||
score_ = 0; // Pon los puntos a cero para que no se vea en el marcador
|
score_ = 0; // Pon los puntos a cero para que no se vea en el marcador
|
||||||
score_multiplier_ = 1.0F;
|
score_multiplier_ = 1.0F;
|
||||||
setScoreboardMode(Scoreboard::Mode::SCORE);
|
setScoreboardMode(Scoreboard::Mode::SCORE);
|
||||||
|
|||||||
@@ -190,7 +190,6 @@ class Player {
|
|||||||
[[nodiscard]] auto getZOrder() const -> size_t { return z_order_; }
|
[[nodiscard]] auto getZOrder() const -> size_t { return z_order_; }
|
||||||
void setZOrder(size_t z_order) { z_order_ = z_order; }
|
void setZOrder(size_t z_order) { z_order_ = z_order; }
|
||||||
|
|
||||||
|
|
||||||
// Puntuación y juego
|
// Puntuación y juego
|
||||||
[[nodiscard]] auto getScore() const -> int { return score_; }
|
[[nodiscard]] auto getScore() const -> int { return score_; }
|
||||||
[[nodiscard]] auto getScoreMultiplier() const -> float { return score_multiplier_; }
|
[[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 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 game_completed_ = false; // Indica si ha completado el juego
|
||||||
bool uses_keyboard_ = false; // Indica si usa el teclado como dispositivo de control
|
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 ---
|
// --- Métodos internos ---
|
||||||
void shiftColliders(); // Actualiza el círculo de colisión a la posición del jugador
|
void shiftColliders(); // Actualiza el círculo de colisión a la posición del jugador
|
||||||
|
|||||||
Reference in New Issue
Block a user