fix: ratolí visible en fullscreen

This commit is contained in:
2025-12-17 18:36:12 +01:00
parent 2555157bd7
commit 3d5277a395
5 changed files with 19 additions and 22 deletions

View File

@@ -245,8 +245,7 @@ void VectorText::render_centered(const std::string& text, const Punt& centre_pun
// restant la meitat de les dimensions del punt central // restant la meitat de les dimensions del punt central
Punt posicio_esquerra = { Punt posicio_esquerra = {
centre_punt.x - (text_width / 2.0f), centre_punt.x - (text_width / 2.0f),
centre_punt.y - (text_height / 2.0f) centre_punt.y - (text_height / 2.0f)};
};
// Delegar al mètode render() existent // Delegar al mètode render() existent
render(text, posicio_esquerra, escala, spacing, brightness); render(text, posicio_esquerra, escala, spacing, brightness);

View File

@@ -32,15 +32,13 @@ void setForceHidden(bool force) {
if (force) { if (force) {
// Entrando en modo oculto forzado: ocultar cursor inmediatamente // Entrando en modo oculto forzado: ocultar cursor inmediatamente
if (cursor_visible) { SDL_HideCursor();
SDL_HideCursor(); cursor_visible = false;
cursor_visible = false;
}
} else { } else {
// Saliendo de modo oculto forzado: mostrar cursor y resetear temporizador // Saliendo de modo oculto forzado: NO mostrar cursor automáticamente
SDL_ShowCursor(); // El cursor permanece oculto hasta que haya movimiento de ratón (handleEvent)
cursor_visible = true;
last_mouse_move_time = SDL_GetTicks(); // Resetear temporizador last_mouse_move_time = SDL_GetTicks(); // Resetear temporizador
// cursor_visible permanece false - handleEvent lo cambiará al detectar movimiento
} }
} }

View File

@@ -241,8 +241,8 @@ void EscenaJoc::actualitzar(float delta_time) {
// Only allow join if there's an active game // Only allow join if there's an active game
if (algun_jugador_viu) { if (algun_jugador_viu) {
// P2 can join if not currently playing (never joined OR dead without lives) // P2 can join if not currently playing (never joined OR dead without lives)
bool p2_no_juga = !config_partida_.jugador2_actiu || // Never joined bool p2_no_juga = !config_partida_.jugador2_actiu || // Never joined
itocado_per_jugador_[1] == 999.0f; // Dead without lives itocado_per_jugador_[1] == 999.0f; // Dead without lives
if (p2_no_juga) { if (p2_no_juga) {
if (input->checkActionPlayer2(InputAction::START, Input::DO_NOT_ALLOW_REPEAT)) { if (input->checkActionPlayer2(InputAction::START, Input::DO_NOT_ALLOW_REPEAT)) {
@@ -251,8 +251,8 @@ void EscenaJoc::actualitzar(float delta_time) {
} }
// P1 can join if not currently playing (never joined OR dead without lives) // P1 can join if not currently playing (never joined OR dead without lives)
bool p1_no_juga = !config_partida_.jugador1_actiu || // Never joined bool p1_no_juga = !config_partida_.jugador1_actiu || // Never joined
itocado_per_jugador_[0] == 999.0f; // Dead without lives itocado_per_jugador_[0] == 999.0f; // Dead without lives
if (p1_no_juga) { if (p1_no_juga) {
if (input->checkActionPlayer1(InputAction::START, Input::DO_NOT_ALLOW_REPEAT)) { if (input->checkActionPlayer1(InputAction::START, Input::DO_NOT_ALLOW_REPEAT)) {

View File

@@ -26,9 +26,9 @@
// Game over state machine // Game over state machine
enum class EstatGameOver { enum class EstatGameOver {
NONE, // Normal gameplay NONE, // Normal gameplay
CONTINUE, // Continue countdown screen (9→0) CONTINUE, // Continue countdown screen (9→0)
GAME_OVER // Final game over (returning to title) GAME_OVER // Final game over (returning to title)
}; };
// Classe principal del joc (escena) // Classe principal del joc (escena)
@@ -89,11 +89,11 @@ class EscenaJoc {
Punt obtenir_punt_spawn(uint8_t player_id) const; // Get spawn position for player Punt obtenir_punt_spawn(uint8_t player_id) const; // Get spawn position for player
// [NEW] Continue & Join system // [NEW] Continue & Join system
void unir_jugador(uint8_t player_id); // Join inactive player mid-game void unir_jugador(uint8_t player_id); // Join inactive player mid-game
void processar_input_continue(); // Handle input during continue screen void processar_input_continue(); // Handle input during continue screen
void actualitzar_continue(float delta_time); // Update continue countdown void actualitzar_continue(float delta_time); // Update continue countdown
void check_and_apply_continue_timeout(); // Check if continue timed out and transition to GAME_OVER void check_and_apply_continue_timeout(); // Check if continue timed out and transition to GAME_OVER
void dibuixar_continue(); // Draw continue screen void dibuixar_continue(); // Draw continue screen
// [NEW] Stage system helpers // [NEW] Stage system helpers
void dibuixar_missatge_stage(const std::string& missatge); void dibuixar_missatge_stage(const std::string& missatge);

View File

@@ -29,7 +29,7 @@ struct DistribucioEnemics {
uint8_t pentagon; // 0-100 uint8_t pentagon; // 0-100
uint8_t quadrat; // 0-100 uint8_t quadrat; // 0-100
uint8_t molinillo; // 0-100 uint8_t molinillo; // 0-100
// Suma ha de ser 100, validat en StageLoader // Suma ha de ser 100, validat en StageLoader
}; };
// Multiplicadors de dificultat // Multiplicadors de dificultat