fix: ratolí visible en fullscreen
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user