ESC global amb doble pulsació: F12=pausa, BACKSPACE=cancel, text pausa més clar
This commit is contained in:
+10
-9
@@ -2809,6 +2809,16 @@ void Game::updatePauseMenuUI() {
|
||||
pause_menu_->update();
|
||||
pause_menu_->checkInput();
|
||||
|
||||
// F12 (Action::PAUSE) també tanca el menú de pausa — mateix comportament
|
||||
// que seleccionar "Continue" / cancel·lar amb BACKSPACE.
|
||||
if (Input::get()->checkInput(Input::Action::PAUSE, Input::Repeat::OFF)) {
|
||||
leaving_pause_menu_ = true;
|
||||
if (!Options::gameplay.pause_countdown) {
|
||||
pause_counter_ = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
switch (pause_menu_->getItemSelected()) {
|
||||
case 1:
|
||||
leaving_pause_menu_ = true;
|
||||
@@ -2884,15 +2894,6 @@ void Game::enterPausedGame() {
|
||||
Audio::get()->pauseMusic();
|
||||
}
|
||||
|
||||
// ESC esta vinculada a PAUSE, CANCEL y EXIT a la vez (director.cpp), y cada
|
||||
// Action tiene su propio flag de edge-trigger. La pulsacion que nos ha
|
||||
// traido aqui solo ha actualizado el flag de PAUSE; CANCEL y EXIT siguen
|
||||
// a false y dispararian un falso flanco la primera vez que el menu de
|
||||
// pausa los lea. Hacemos una lectura sincronizadora descartada para
|
||||
// ponerlos al dia con el estado real de la tecla.
|
||||
Input::get()->checkInput(Input::Action::CANCEL, Input::Repeat::OFF);
|
||||
Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF);
|
||||
|
||||
// Reinicia el menu
|
||||
pause_menu_->reset();
|
||||
leaving_pause_menu_ = false;
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user