time-based: migrada escena Title (AnimatedSprite/Fade amb dual-API, counters a acumuladors)

This commit is contained in:
2026-05-19 16:31:57 +02:00
parent 2b57bfa4dd
commit fe240c750e
6 changed files with 259 additions and 167 deletions
+15
View File
@@ -31,6 +31,7 @@ void Fade::init(Uint8 r, Uint8 g, Uint8 b) {
enabled_ = false;
finished_ = false;
counter_ = 0;
elapsed_s_ = 0.0F;
r_ = r;
g_ = g;
b_ = b;
@@ -162,11 +163,25 @@ void Fade::update() {
}
}
// Time-based. Per a no haver de refactoritzar `render()` tot d'un cop
// (encara hi ha codi frame-based que també escriu counter_), aquí derivem
// `counter_` a partir de `elapsed_s_` usant la cadència de referència de la
// versió antiga (60 Hz). Així el comportament visual del fade és idèntic.
// Quan tot el codi sigui time-based, render passarà a usar elapsed_s_ amb
// constants en segons i counter_ desapareixerà.
void Fade::update(float dt_s) {
if (!enabled_) { return; }
elapsed_s_ += dt_s;
constexpr float FADE_STEPS_PER_S = 60.0F;
counter_ = static_cast<Uint16>(elapsed_s_ * FADE_STEPS_PER_S);
}
// Activa el fade
void Fade::activateFade() {
enabled_ = true;
finished_ = false;
counter_ = 0;
elapsed_s_ = 0.0F;
squares_drawn_ = 0;
last_square_ticks_ = 0;
fullscreen_done_ = false;