delta-time: balloon.cpp

delta-time: balloon_manager.cpp
delta-time: credits.cpp
This commit is contained in:
2025-09-16 22:38:48 +02:00
parent a96a17e11b
commit a15e29344f
7 changed files with 367 additions and 50 deletions

View File

@@ -62,7 +62,7 @@ void BalloonManager::init() {
explosions_->addTexture(3, explosions_textures_.at(3), explosions_animations_.at(3));
}
// Actualiza
// Actualiza (frame-based)
void BalloonManager::update() {
for (const auto &balloon : balloons_) {
balloon->update();
@@ -71,6 +71,15 @@ void BalloonManager::update() {
explosions_->update();
}
// Actualiza (time-based)
void BalloonManager::update(float deltaTime) {
for (const auto &balloon : balloons_) {
balloon->update(deltaTime);
}
updateBalloonDeployCounter(deltaTime);
explosions_->update(); // Explosions aún no migrado a deltaTime
}
// Renderiza los objetos
void BalloonManager::render() {
for (auto &balloon : balloons_) {
@@ -162,13 +171,23 @@ void BalloonManager::freeBalloons() {
balloons_.erase(result.begin(), balloons_.end());
}
// Actualiza la variable enemyDeployCounter
// Actualiza la variable enemyDeployCounter (frame-based)
void BalloonManager::updateBalloonDeployCounter() {
if (balloon_deploy_counter_ > 0) {
--balloon_deploy_counter_;
}
}
// Actualiza la variable enemyDeployCounter (time-based)
void BalloonManager::updateBalloonDeployCounter(float deltaTime) {
if (balloon_deploy_counter_ > 0) {
// Convertir deltaTime (milisegundos) a factor de frame (asumiendo 60fps)
float frameFactor = deltaTime / (1000.0f / 60.0f);
balloon_deploy_counter_ -= frameFactor;
if (balloon_deploy_counter_ < 0) balloon_deploy_counter_ = 0;
}
}
// Indica si se puede crear una powerball
auto BalloonManager::canPowerBallBeCreated() -> bool { return (!power_ball_enabled_) && (calculateScreenPower() > Balloon::POWERBALL_SCREENPOWER_MINIMUM) && (power_ball_counter_ == 0); }