MODO LOGO (Easter Egg): - Modo especial que muestra logo JAILGAMES como "marca de agua" - Activación manual: tecla K (perpetuo, no sale automáticamente) - Auto-salto desde DEMO/DEMO_LITE (15%/10% probabilidad, ≥500 pelotas) - Configuración fija: PNG_SHAPE + tiny texture + MONOCHROME + 120% escala + 5000 pelotas - Sistema de 5 acciones variadas con probabilidades ajustadas: * SHAPE→PHYSICS gravedad ON (50%) - caída dramática * SHAPE→PHYSICS gravedad OFF (50%) - ver rotaciones sin caer * PHYSICS→SHAPE (60%) - reconstruir logo y mostrar rotaciones * PHYSICS: forzar gravedad ON (20%) - caer mientras da vueltas * PHYSICS: forzar gravedad OFF (20%) - flotar mientras da vueltas - Intervalos 4-8s (aumentado para completar ciclos de rotación PNG_SHAPE) - Textos informativos suprimidos en Logo Mode - Corrección cambio de textura: actualiza texture_ y setTexture() en pelotas - PNG_SHAPE idle reducido a 0.5-2s para animación más dinámica MEJORAS FÍSICAS GLOBALES: - Impulso automático al quitar gravedad si >50% pelotas en superficie - Usa isOnSurface() para detectar pelotas quietas (DEMO/DEMO_LITE/LOGO) - Evita que quitar gravedad con pelotas paradas no haga nada visible SISTEMA AUTOMÁTICO DE CURSOR: - Importado mouse.h/mouse.cpp desde Coffee Crisis Arcade Edition - Auto-oculta cursor tras 3s de inactividad (namespace Mouse) - Reaparece inmediatamente al mover ratón - Funciona en todos los modos (ventana, fullscreen F3, real fullscreen F4) - Eliminadas llamadas manuales SDL_ShowCursor/HideCursor - Soluciona bug: cursor visible al iniciar con argumento -f 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
28 lines
836 B
C++
28 lines
836 B
C++
#include "mouse.h"
|
|
|
|
#include <SDL3/SDL.h> // Para SDL_GetTicks, Uint32, SDL_HideCursor, SDL_ShowCursor
|
|
|
|
namespace Mouse {
|
|
Uint32 cursor_hide_time = 3000; // Tiempo en milisegundos para ocultar el cursor
|
|
Uint32 last_mouse_move_time = 0; // Última vez que el ratón se movió
|
|
bool cursor_visible = true; // Estado del cursor
|
|
|
|
void handleEvent(const SDL_Event &event) {
|
|
if (event.type == SDL_EVENT_MOUSE_MOTION) {
|
|
last_mouse_move_time = SDL_GetTicks();
|
|
if (!cursor_visible) {
|
|
SDL_ShowCursor();
|
|
cursor_visible = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
void updateCursorVisibility() {
|
|
Uint32 current_time = SDL_GetTicks();
|
|
if (cursor_visible && (current_time - last_mouse_move_time > cursor_hide_time)) {
|
|
SDL_HideCursor();
|
|
cursor_visible = false;
|
|
}
|
|
}
|
|
} // namespace Mouse
|