time-based: migrada escena Title (AnimatedSprite/Fade amb dual-API, counters a acumuladors)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user