time-based: migrada escena Instructions + fix scroll diagonal del fons del Title (ancorat a posicio inicial)

This commit is contained in:
2026-05-19 16:44:26 +02:00
parent fe240c750e
commit c920f99c82
3 changed files with 52 additions and 12 deletions
+26
View File
@@ -97,6 +97,31 @@ void Instructions::update() {
}
}
// Time-based. counter_ es deriva de elapsed_s_*60 (cadència de referència 60Hz)
// per a no haver de refactoritzar render() — la geometria del scroll, la
// pulsació dels sprites i el blink de manual segueixen llegint counter_.
void Instructions::update(float dt_s) {
Audio::update();
checkInput();
elapsed_s_ += dt_s;
constexpr float FRAMES_PER_S = 60.0F;
if (mode_ == Mode::AUTO) {
counter_ = static_cast<Uint16>(elapsed_s_ * FRAMES_PER_S);
if (elapsed_s_ >= SCENE_DURATION_S) {
finished_ = true;
}
} else {
// counter_ acotat al rang original 0..59999 per no trencar les expressions
// de blink i sprite-cycling que en depenen.
counter_ = static_cast<Uint16>(static_cast<int>(elapsed_s_ * FRAMES_PER_S) % 60000);
if (manual_quit_) {
finished_ = true;
}
}
}
// Pinta en pantalla
void Instructions::render() {
// Pinta en pantalla
@@ -252,6 +277,7 @@ void Instructions::start(Mode mode) {
manual_quit_ = false;
counter_ = 0;
ticks_ = 0;
elapsed_s_ = 0.0F;
}
// Indica si las instrucciones han terminado