magic numbers: moving_sprite.cpp i game_logo.cpp

This commit is contained in:
2025-09-22 13:57:58 +02:00
parent 9edfe6877f
commit 8f83a1d13e
5 changed files with 104 additions and 31 deletions

View File

@@ -53,9 +53,9 @@ void GameLogo::init() {
coffee_sprite_->setWidth(coffee_texture_->getWidth());
coffee_sprite_->setHeight(coffee_texture_->getHeight());
coffee_sprite_->setVelX(0.0F);
coffee_sprite_->setVelY(2.5F);
coffee_sprite_->setVelY(COFFEE_VEL_Y);
coffee_sprite_->setAccelX(0.0F);
coffee_sprite_->setAccelY(0.1F);
coffee_sprite_->setAccelY(COFFEE_ACCEL_Y);
coffee_sprite_->setSpriteClip(0, 0, coffee_texture_->getWidth(), coffee_texture_->getHeight());
coffee_sprite_->setEnabled(true);
coffee_sprite_->setFinishedCounter(0);
@@ -63,34 +63,34 @@ void GameLogo::init() {
coffee_sprite_->setDestY(y_ - coffee_texture_->getHeight());
// Inicializa el bitmap de 'Crisis'
crisis_sprite_->setPosX(XP + 15);
crisis_sprite_->setPosX(XP + CRISIS_OFFSET_X);
crisis_sprite_->setPosY(y_ + DESP);
crisis_sprite_->setWidth(crisis_texture_->getWidth());
crisis_sprite_->setHeight(crisis_texture_->getHeight());
crisis_sprite_->setVelX(0.0F);
crisis_sprite_->setVelY(-2.5F);
crisis_sprite_->setVelY(CRISIS_VEL_Y);
crisis_sprite_->setAccelX(0.0F);
crisis_sprite_->setAccelY(-0.1F);
crisis_sprite_->setAccelY(CRISIS_ACCEL_Y);
crisis_sprite_->setSpriteClip(0, 0, crisis_texture_->getWidth(), crisis_texture_->getHeight());
crisis_sprite_->setEnabled(true);
crisis_sprite_->setFinishedCounter(0);
crisis_sprite_->setDestX(XP + 15);
crisis_sprite_->setDestX(XP + CRISIS_OFFSET_X);
crisis_sprite_->setDestY(y_);
// Inicializa el bitmap de 'DustRight'
dust_right_sprite_->resetAnimation();
dust_right_sprite_->setPosX(coffee_sprite_->getPosX() + coffee_sprite_->getWidth());
dust_right_sprite_->setPosY(y_);
dust_right_sprite_->setWidth(16);
dust_right_sprite_->setHeight(16);
dust_right_sprite_->setWidth(DUST_SIZE);
dust_right_sprite_->setHeight(DUST_SIZE);
dust_right_sprite_->setFlip(SDL_FLIP_HORIZONTAL);
// Inicializa el bitmap de 'DustLeft'
dust_left_sprite_->resetAnimation();
dust_left_sprite_->setPosX(coffee_sprite_->getPosX() - 16);
dust_left_sprite_->setPosX(coffee_sprite_->getPosX() - DUST_SIZE);
dust_left_sprite_->setPosY(y_);
dust_left_sprite_->setWidth(16);
dust_left_sprite_->setHeight(16);
dust_left_sprite_->setWidth(DUST_SIZE);
dust_left_sprite_->setHeight(DUST_SIZE);
// Inicializa el bitmap de 'Arcade Edition'
arcade_edition_sprite_->setZoom(zoom_);
@@ -174,8 +174,8 @@ void GameLogo::handleCoffeeCrisisFinished(float deltaTime) {
}
void GameLogo::handleArcadeEditionMoving(float deltaTime) {
// Convertir 0.1F * ZOOM_FACTOR por frame a por milisegundo (asumiendo 60fps)
zoom_ -= (0.1F * ZOOM_FACTOR) * deltaTime / (1000.0F / 60.0F);
// DeltaTime puro: decremento por milisegundo
zoom_ -= (ZOOM_DECREMENT_PER_MS * ZOOM_FACTOR) * deltaTime;
arcade_edition_sprite_->setZoom(zoom_);
if (zoom_ <= 1.0F) {
@@ -200,15 +200,15 @@ void GameLogo::processShakeEffect(SmartSprite* primary_sprite, SmartSprite* seco
const auto DISPLACEMENT = calculateShakeDisplacement();
primary_sprite->setPosX(shake_.origin + DISPLACEMENT);
if (secondary_sprite != nullptr) {
secondary_sprite->setPosX(shake_.origin + DISPLACEMENT + 15);
secondary_sprite->setPosX(shake_.origin + DISPLACEMENT + CRISIS_OFFSET_X);
}
shake_.remaining--;
}
}
void GameLogo::processShakeEffect(SmartSprite* primary_sprite, SmartSprite* secondary_sprite, float deltaTime) {
// Convertir delay (frames) a tiempo: delay frames = delay * (1000ms/60fps)
float delayTime = static_cast<float>(shake_.delay) * (1000.0f / 60.0f);
// Delay fijo en milisegundos (shake_.delay era frames, ahora usamos constante)
float delayTime = SHAKE_DELAY_MS;
shake_.time_accumulator += deltaTime;
@@ -217,15 +217,15 @@ void GameLogo::processShakeEffect(SmartSprite* primary_sprite, SmartSprite* seco
const auto DISPLACEMENT = calculateShakeDisplacement();
primary_sprite->setPosX(shake_.origin + DISPLACEMENT);
if (secondary_sprite != nullptr) {
secondary_sprite->setPosX(shake_.origin + DISPLACEMENT + 15);
secondary_sprite->setPosX(shake_.origin + DISPLACEMENT + CRISIS_OFFSET_X);
}
shake_.remaining--;
}
}
void GameLogo::processArcadeEditionShake(float deltaTime) {
// Convertir delay (frames) a tiempo: delay frames = delay * (1000ms/60fps)
float delayTime = static_cast<float>(shake_.delay) * (1000.0f / 60.0f);
// Delay fijo en milisegundos (shake_.delay era frames, ahora usamos constante)
float delayTime = SHAKE_DELAY_MS;
shake_.time_accumulator += deltaTime;
@@ -243,7 +243,7 @@ auto GameLogo::calculateShakeDisplacement() const -> int {
void GameLogo::finishCoffeeCrisisShaking() {
coffee_sprite_->setPosX(shake_.origin);
crisis_sprite_->setPosX(shake_.origin + 15);
crisis_sprite_->setPosX(shake_.origin + CRISIS_OFFSET_X);
coffee_crisis_status_ = Status::FINISHED;
arcade_edition_status_ = Status::MOVING;
}
@@ -272,8 +272,8 @@ void GameLogo::updatePostFinishedCounter(float deltaTime) {
arcade_edition_status_ == Status::FINISHED &&
post_finished_counter_ > 0) {
// Convertir 1 frame a tiempo: 1 frame = 1000ms/60fps = 16.67ms
float frameTime = 1000.0f / 60.0f;
// Tiempo entre decrementos del counter
float frameTime = POST_FINISHED_FRAME_TIME;
post_finished_time_accumulator_ += deltaTime;