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
+15 -8
View File
@@ -23,11 +23,12 @@ class Instructions {
Instructions(const Instructions &) = delete;
auto operator=(const Instructions &) -> Instructions & = delete;
void run(Mode mode); // Bucle principal
void start(Mode mode); // Inicia las instrucciones (sin bucle)
void update(); // Actualiza las variables
void render(); // Pinta en pantalla
void checkEvents(); // Comprueba los eventos
void run(Mode mode); // Bucle principal
void start(Mode mode); // Inicia las instrucciones (sin bucle)
void update(); // Actualiza las variables (frame-based)
void update(float dt_s); // Actualiza las variables (time-based)
void render(); // Pinta en pantalla
void checkEvents(); // Comprueba los eventos
[[nodiscard]] auto hasFinished() const -> bool; // Indica si las instrucciones han terminado
[[nodiscard]] auto isQuitRequested() const -> bool; // Indica si se ha solicitado salir de la aplicación
@@ -43,14 +44,20 @@ class Instructions {
Section *section_; // Estado del bucle principal para saber si continua o se sale
// Variables
Uint16 counter_; // Contador
Uint16 counter_; // Contador (derivat de elapsed_s_ * 60 en mode time-based)
Uint16 counter_end_; // Valor final para el contador
Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa
Uint32 ticks_speed_; // Velocidad a la que se repiten los bucles del programa
Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa (frame-based)
Uint32 ticks_speed_; // Velocidad a la que se repiten los bucles del programa (frame-based)
float elapsed_s_{0.0F}; // Acumulador de temps (time-based)
bool manual_quit_; // Indica si se quiere salir del modo manual
Mode mode_{Instructions::Mode::AUTO}; // Modo en el que se van a ejecutar las instrucciones
bool finished_; // Indica si las instrucciones han terminado
bool quit_requested_; // Indica si se ha solicitado salir de la aplicación
// Time-based: durada total de la escena en mode AUTO (600 frames a 60Hz).
static constexpr float SCENE_DURATION_S = 10.0F;
// Time-based: temps mínim al mode MANUAL abans de poder sortir (30 frames a 60Hz).
static constexpr float MANUAL_QUIT_DELAY_S = 0.5F;
void checkInput(); // Comprueba las entradas
};