Fix: Ajustar dimensionamiento de HelpOverlay para resoluciones bajas
Problemas resueltos: - En 640x360, el overlay generaba textura enorme con letras grandes - El cálculo de font size usaba dimensiones físicas (con zoom aplicado) en lugar de dimensiones lógicas (resolución interna) - No había límite máximo de ancho para el overlay - Padding fijo de 25px era excesivo en pantallas pequeñas Cambios realizados: 1. UIManager: Usar dimensiones lógicas para calcular font size - Nuevo parámetro logical_width/logical_height en initialize() - calculateFontSize() ahora usa altura lógica sin zoom - Escalado híbrido: proporcional en extremos, escalonado en rango medio - Para 640x360: 10px (antes 18px con zoom 2x) - Para 640x480: 12px (antes 24px con zoom 2x) 2. HelpOverlay: Agregar límites máximos de dimensiones - Box width limitado al 95% del ancho físico - Box height limitado al 90% de la altura física - Padding dinámico: 25px para >=600px, escalado para menores - Para 360px altura: padding de 15px (antes 25px fijo) 3. Engine: Pasar dimensiones lógicas a UIManager - initialize() ahora recibe current_screen_width/height Resultado: - 640x360: Overlay compacto con fuente 10px que cabe en pantalla - 640x480: Overlay con fuente 12px (tamaño apropiado) - Tamaño de fuente consistente independiente del zoom de ventana 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -237,7 +237,9 @@ bool Engine::initialize(int width, int height, int zoom, bool fullscreen, AppMod
|
||||
// Inicializar UIManager (HUD, FPS, notificaciones)
|
||||
// NOTA: Debe llamarse DESPUÉS de calcular physical_window_* y ThemeManager
|
||||
ui_manager_ = std::make_unique<UIManager>();
|
||||
ui_manager_->initialize(renderer_, theme_manager_.get(), physical_window_width_, physical_window_height_);
|
||||
ui_manager_->initialize(renderer_, theme_manager_.get(),
|
||||
physical_window_width_, physical_window_height_,
|
||||
current_screen_width_, current_screen_height_);
|
||||
|
||||
// Inicializar ShapeManager (gestión de figuras 3D)
|
||||
shape_manager_ = std::make_unique<ShapeManager>();
|
||||
|
||||
Reference in New Issue
Block a user