canvi de pc before boromir

This commit is contained in:
2025-07-11 23:34:52 +02:00
parent 06815d4f72
commit 6082a72392
2 changed files with 37 additions and 26 deletions

View File

@@ -372,25 +372,25 @@ void Player::setAnimation()
if (firing_state_ == PlayerState::FIRING_NONE) if (firing_state_ == PlayerState::FIRING_NONE)
{ {
// No esta disparando // No esta disparando
player_sprite_->setCurrentAnimation(WALK_ANIMATION); player_sprite_->setCurrentAnimation(WALK_ANIMATION, false);
player_sprite_->setFlip(FLIP_WALK); player_sprite_->setFlip(FLIP_WALK);
} }
else if (isRecoiling()) else if (isRecoiling())
{ {
// Retroceso // Retroceso
player_sprite_->setCurrentAnimation(WALK_ANIMATION + RECOIL_ANIMATION); player_sprite_->setCurrentAnimation(WALK_ANIMATION + RECOIL_ANIMATION, false);
player_sprite_->setFlip(FLIP_RECOIL); player_sprite_->setFlip(FLIP_RECOIL);
} }
else if (isCooling()) else if (isCooling())
{ {
// Acaba de disparar // Acaba de disparar
player_sprite_->setCurrentAnimation(WALK_ANIMATION + COOL_ANIMATION); player_sprite_->setCurrentAnimation(WALK_ANIMATION + COOL_ANIMATION, false);
player_sprite_->setFlip(FLIP_COOL); player_sprite_->setFlip(FLIP_COOL);
} }
else else
{ {
// Está disparando // Está disparando
player_sprite_->setCurrentAnimation(WALK_ANIMATION + FIRE_ANIMATION); player_sprite_->setCurrentAnimation(WALK_ANIMATION + FIRE_ANIMATION, false);
// Si dispara de lado, invierte el sprite segun hacia donde dispara // Si dispara de lado, invierte el sprite segun hacia donde dispara
// Si dispara recto, invierte el sprite segun hacia donde camina // Si dispara recto, invierte el sprite segun hacia donde camina
player_sprite_->setFlip(FIRE_ANIMATION == "-fire-center" ? FLIP_WALK : FLIP_FIRE); player_sprite_->setFlip(FIRE_ANIMATION == "-fire-center" ? FLIP_WALK : FLIP_FIRE);
@@ -454,36 +454,47 @@ void Player::updateCooldown()
} }
--cant_fire_counter_; --cant_fire_counter_;
if (cant_fire_counter_ == 0)
{
recoiling_state_counter_ = recoiling_state_duration_;
}
} }
else else
{ {
if (cooling_state_counter_ > COOLING_COMPLETE_) if (recoiling_state_counter_ > 0)
{ {
if (cooling_state_counter_ == COOLING_DURATION_) --recoiling_state_counter_;
}
else
{
if (cooling_state_counter_ > COOLING_COMPLETE_)
{ {
switch (firing_state_) if (cooling_state_counter_ == COOLING_DURATION_)
{ {
case PlayerState::RECOILING_LEFT: switch (firing_state_)
setFiringState(PlayerState::COOLING_LEFT); {
break; case PlayerState::RECOILING_LEFT:
case PlayerState::RECOILING_RIGHT: setFiringState(PlayerState::COOLING_LEFT);
setFiringState(PlayerState::COOLING_RIGHT); break;
break; case PlayerState::RECOILING_RIGHT:
case PlayerState::RECOILING_UP: setFiringState(PlayerState::COOLING_RIGHT);
setFiringState(PlayerState::COOLING_UP); break;
break; case PlayerState::RECOILING_UP:
default: setFiringState(PlayerState::COOLING_UP);
break; break;
default:
break;
}
} }
--cooling_state_counter_;
} }
--cooling_state_counter_; if (cooling_state_counter_ == COOLING_COMPLETE_)
} {
setFiringState(PlayerState::FIRING_NONE);
if (cooling_state_counter_ == COOLING_COMPLETE_) cooling_state_counter_ = -1;
{ }
setFiringState(PlayerState::FIRING_NONE);
cooling_state_counter_ = -1;
} }
} }
} }

View File

@@ -162,7 +162,7 @@ private:
static constexpr int WIDTH_ = 30; // Anchura static constexpr int WIDTH_ = 30; // Anchura
static constexpr int HEIGHT_ = 30; // Altura static constexpr int HEIGHT_ = 30; // Altura
static constexpr float BASE_SPEED_ = 1.5f; // Velocidad base del jugador static constexpr float BASE_SPEED_ = 1.5f; // Velocidad base del jugador
static constexpr int COOLING_DURATION_ = 30; static constexpr int COOLING_DURATION_ = 50;
static constexpr int COOLING_COMPLETE_ = 0; static constexpr int COOLING_COMPLETE_ = 0;
// --- Objetos y punteros --- // --- Objetos y punteros ---