treballant en redefine keys
This commit is contained in:
@@ -40,6 +40,12 @@ class Title {
|
||||
POST_FADE_MENU,
|
||||
};
|
||||
|
||||
enum class ControlsMenuState {
|
||||
MAIN, // Mostrar menu principal de controles
|
||||
KEYBOARD_REMAP, // Redefinir teclas del teclado
|
||||
JOYSTICK_REMAP, // Redefinir botones del joystick (futuro)
|
||||
};
|
||||
|
||||
// --- Constantes de tiempo (en segundos) ---
|
||||
static constexpr float SHOW_LOADING_DURATION = 5.0F; // Tiempo mostrando loading screen (antes 500 frames)
|
||||
static constexpr float FADE_STEP_INTERVAL = 0.05F; // Intervalo entre pasos de fade (antes cada 4 frames)
|
||||
@@ -77,6 +83,12 @@ class Title {
|
||||
float fade_accumulator_; // Acumulador para controlar el fade por tiempo
|
||||
SceneManager::Scene exit_scene_; // Escena de destino al salir del título
|
||||
|
||||
// --- Variables para redefinir controles ---
|
||||
ControlsMenuState controls_menu_state_; // Subestado del menu de controles
|
||||
int remap_step_; // Paso actual en la redefinicion (0=LEFT, 1=RIGHT, 2=JUMP)
|
||||
SDL_Scancode temp_keys_[3]; // Almacenamiento temporal de teclas capturadas
|
||||
std::string remap_error_message_; // Mensaje de error si la tecla es invalida
|
||||
|
||||
// --- Funciones ---
|
||||
void update(); // Actualiza las variables
|
||||
void render(); // Dibuja en pantalla
|
||||
@@ -98,7 +110,13 @@ class Title {
|
||||
void renderMainMenu(); // Dibuja el menu principal
|
||||
void renderCheevosMenu(); // Dibuja el menu de logros
|
||||
void renderControlsMenu(); // Dibuja el menu de controles
|
||||
void renderKeyboardRemap(); // Dibuja la pantalla de redefinir teclado
|
||||
void moveCheevosList(int direction, float delta_time); // Desplaza la lista de logros (time-based)
|
||||
void handleControlsMenuKeyboardRemap(const SDL_Event& event); // Maneja la captura de teclas
|
||||
bool isKeyValid(SDL_Scancode scancode); // Valida si una tecla es permitida
|
||||
bool isKeyDuplicate(SDL_Scancode scancode, int current_step); // Valida si una tecla esta duplicada
|
||||
void applyKeyboardRemap(); // Aplica y guarda las teclas redefinidas
|
||||
std::string getActionName(int step); // Retorna el nombre de la accion (LEFT/RIGHT/JUMP)
|
||||
void createCheevosTexture(); // Crea y rellena la surface para mostrar los logros
|
||||
void resetCheevosScroll(); // Resetea el scroll de la lista de logros
|
||||
void fillTitleSurface(); // Dibuja los elementos en la surface
|
||||
|
||||
Reference in New Issue
Block a user