time-based: migrada escena Instructions + fix scroll diagonal del fons del Title (ancorat a posicio inicial)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user