ESC global amb doble pulsació: F12=pausa, BACKSPACE=cancel, text pausa més clar

This commit is contained in:
2026-05-17 18:10:15 +02:00
parent 659e37e5a1
commit a40931c7ca
12 changed files with 104 additions and 66 deletions
+2 -7
View File
@@ -210,13 +210,8 @@ void Instructions::checkEvents() {
// Comprueba las entradas
void Instructions::checkInput() {
#ifndef __EMSCRIPTEN__
if (Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF)) {
quit_requested_ = true;
finished_ = true;
return;
}
#endif
// ESC (Action::EXIT) ja el gestiona GlobalInputs::handle() amb doble
// pulsació; el quit es propaga via Director::iterate.
if (GlobalInputs::handle()) { return; }
if (Input::get()->checkInput(Input::Action::PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_RIGHT, Input::Repeat::OFF)) {
+2 -6
View File
@@ -166,12 +166,8 @@ Intro::~Intro() {
// Comprueba las entradas
void Intro::checkInput() {
#ifndef __EMSCRIPTEN__
if (Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF)) {
section_->name = SECTION_PROG_QUIT;
return;
}
#endif
// ESC (Action::EXIT) ja el gestiona GlobalInputs::handle() amb doble
// pulsació; el quit es propaga via Director::iterate.
if (GlobalInputs::handle()) { return; }
if (Input::get()->checkInput(Input::Action::PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_RIGHT, Input::Repeat::OFF)) {
+2 -6
View File
@@ -56,12 +56,8 @@ void Logo::checkLogoEnd() {
// Comprueba las entradas
void Logo::checkInput() {
#ifndef __EMSCRIPTEN__
if (Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF)) {
section_->name = SECTION_PROG_QUIT;
return;
}
#endif
// ESC (Action::EXIT) ja el gestiona GlobalInputs::handle() amb doble
// pulsació; el quit es propaga via Director::iterate.
if (GlobalInputs::handle()) { return; }
if (Input::get()->checkInput(Input::Action::PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_RIGHT, Input::Repeat::OFF)) {
+3 -7
View File
@@ -619,14 +619,10 @@ void Title::render() {
}
}
// Comprueba las entradas
// Comprueba las entradas. ESC (Action::EXIT) ja el gestiona
// GlobalInputs::handle() amb doble pulsació; el quit es propaga via
// Director::iterate.
void Title::checkInput() {
#ifndef __EMSCRIPTEN__
if (Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF)) {
section_->name = SECTION_PROG_QUIT;
return;
}
#endif
GlobalInputs::handle();
}
+15 -15
View File
@@ -74,17 +74,17 @@ class Title {
// Variables
Ja::Music *title_music_; // Musica para el titulo
Ja::Sound *crash_sound_; // Sonido con el impacto del título
int background_counter_; // Temporizador para el fondo de tiles de la pantalla de titulo
int counter_; // Temporizador para la pantalla de titulo
Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa
Uint8 background_mode_; // Variable para almacenar el tipo de efecto que hará el fondo de la pantalla de titulo
float sin_[360]; // Vector con los valores del seno precalculados
bool menu_visible_; // Indicador para saber si se muestra el menu del titulo o la frase intermitente
bool demo_; // Indica si el modo demo estará activo
Section next_section_; // Indica cual es la siguiente sección a cargar cuando termine el contador del titulo
Uint32 ticks_speed_; // Velocidad a la que se repiten los bucles del programa
Uint8 post_fade_; // Opción a realizar cuando termina el fundido
MenuData menu_; // Variable con todos los objetos menus y sus variables
int background_counter_; // Temporizador para el fondo de tiles de la pantalla de titulo
int counter_; // Temporizador para la pantalla de titulo
Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa
Uint8 background_mode_; // Variable para almacenar el tipo de efecto que hará el fondo de la pantalla de titulo
float sin_[360]; // Vector con los valores del seno precalculados
bool menu_visible_; // Indicador para saber si se muestra el menu del titulo o la frase intermitente
bool demo_; // Indica si el modo demo estará activo
Section next_section_; // Indica cual es la siguiente sección a cargar cuando termine el contador del titulo
Uint32 ticks_speed_; // Velocidad a la que se repiten los bucles del programa
Uint8 post_fade_; // Opción a realizar cuando termina el fundido
MenuData menu_; // Variable con todos los objetos menus y sus variables
// Snapshot per a permetre CANCEL al menú d'opcions.
Options::Video prev_video_;
Options::Window prev_window_;
@@ -105,10 +105,10 @@ class Title {
Instructions::Mode instructions_mode_{Instructions::Mode::AUTO}; // Modo de las instrucciones activas
bool demo_then_instructions_; // Indica si tras la demo hay que mostrar instrucciones
void init(); // Inicializa los valores
void update(); // Actualiza las variables del objeto
void render(); // Dibuja el objeto en pantalla
void checkInput(); // Comprueba las entradas
void init(); // Inicializa los valores
void update(); // Actualiza las variables del objeto
void render(); // Dibuja el objeto en pantalla
static void checkInput(); // Comprueba las entradas (només delega a GlobalInputs)
// Helpers de update, uno por cada subsección y por cada switch dentro del título 3
void updateTitle1();