nou: bales de colors diferents per a cada jugador
This commit is contained in:
@@ -774,7 +774,7 @@ void Player::updatePowerUp(float deltaTime) {
|
||||
power_sprite_visible_ = false;
|
||||
in_power_up_ending_phase_ = false;
|
||||
bullet_color_toggle_ = false;
|
||||
bullet_color_ = Bullet::Color::YELLOW;
|
||||
// Los colores ahora se manejan dinámicamente en getNextBulletColor()
|
||||
} else {
|
||||
// Calcular visibilidad del power sprite
|
||||
const float TOTAL_POWERUP_TIME_S = static_cast<float>(POWERUP_COUNTER) / 60.0f;
|
||||
@@ -784,7 +784,6 @@ void Player::updatePowerUp(float deltaTime) {
|
||||
// En los primeros 75% del tiempo, siempre visible
|
||||
power_sprite_visible_ = true;
|
||||
in_power_up_ending_phase_ = false;
|
||||
bullet_color_ = Bullet::Color::GREEN;
|
||||
} else {
|
||||
// En el último 25%, parpadea cada 20 frames (≈0.333s)
|
||||
constexpr float BLINK_PERIOD_S = 20.0f / 60.0f;
|
||||
@@ -793,14 +792,12 @@ void Player::updatePowerUp(float deltaTime) {
|
||||
float cycle_position = fmod(power_up_time_accumulator_, BLINK_PERIOD_S) / BLINK_PERIOD_S;
|
||||
power_sprite_visible_ = cycle_position >= VISIBLE_PROPORTION;
|
||||
in_power_up_ending_phase_ = true; // Activar modo alternancia de colores de balas
|
||||
bullet_color_ = power_sprite_visible_ ? Bullet::Color::GREEN : Bullet::Color::YELLOW;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
power_sprite_visible_ = false;
|
||||
in_power_up_ending_phase_ = false;
|
||||
bullet_color_toggle_ = false;
|
||||
bullet_color_ = Bullet::Color::YELLOW;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -935,15 +932,26 @@ auto Player::isRenderable() const -> bool {
|
||||
return !isTitleHidden();
|
||||
};
|
||||
|
||||
// Devuelve el color actual de bala según el estado
|
||||
auto Player::getBulletColor() const -> Bullet::Color {
|
||||
return power_up_ ? bullet_colors_.powered_color : bullet_colors_.normal_color;
|
||||
}
|
||||
|
||||
// Devuelve el color para la próxima bala (alterna si está en modo toggle)
|
||||
auto Player::getNextBulletColor() -> Bullet::Color {
|
||||
if (in_power_up_ending_phase_) {
|
||||
// En fase final: alternar entre verde y amarillo
|
||||
// En fase final: alternar entre colores powered y normal
|
||||
bullet_color_toggle_ = !bullet_color_toggle_;
|
||||
return bullet_color_toggle_ ? Bullet::Color::GREEN : Bullet::Color::YELLOW;
|
||||
return bullet_color_toggle_ ? bullet_colors_.powered_color : bullet_colors_.normal_color;
|
||||
}
|
||||
// Modo normal: sin power-up = amarillo, con power-up = verde
|
||||
return bullet_color_;
|
||||
// Modo normal: sin power-up = normal_color, con power-up = powered_color
|
||||
return power_up_ ? bullet_colors_.powered_color : bullet_colors_.normal_color;
|
||||
}
|
||||
|
||||
// Establece los colores de bala para este jugador
|
||||
void Player::setBulletColors(Bullet::Color normal, Bullet::Color powered) {
|
||||
bullet_colors_.normal_color = normal;
|
||||
bullet_colors_.powered_color = powered;
|
||||
}
|
||||
|
||||
// Añade una puntuación a la tabla de records
|
||||
|
||||
Reference in New Issue
Block a user