Problema: - Columna derecha del HUD (FPS, info de pelota) se alineaba usando dimensión física - En modo letterbox (F3 INTEGER/LETTERBOX) aparecía en barras negras o fuera de pantalla - Mismo issue que tenían Notifier y Help Overlay Causa: - ui_manager.cpp:renderDebugHUD() usaba `physical_window_width_` para alinear a la derecha - En F3 letterbox: viewport visible < ventana física - Ejemplo: ventana 1920px, viewport 1280px con offset 320px - Cálculo: fps_x = 1920 - width - margin - printAbsolute() aplicaba offset: 1920 - width + 320 = fuera de pantalla - Resultado: texto del HUD invisible o en barras negras Solución: - Obtener viewport con SDL_GetRenderViewport() al inicio de renderDebugHUD() - Reemplazar TODAS las referencias a `physical_window_width_` con `viewport.w` - Coordenadas relativas al viewport, printAbsolute() aplica offset automáticamente Código modificado: - ui_manager.cpp:208-211 - Obtención de viewport - ui_manager.cpp:315, 326, 333, 340, 347, 353, 360, 366, 375 - Alineación con viewport.w Líneas afectadas (9 totales): - FPS counter - Posición X/Y primera pelota - Velocidad X/Y - Fuerza de gravedad - Estado superficie - Coeficiente de rebote (loss) - Dirección de gravedad - Convergencia (LOGO mode) Resultado: ✅ HUD de debug alineado correctamente al borde derecho del viewport ✅ Columna derecha visible dentro del área de juego ✅ No aparece en barras negras en F3 ✅ Funciona correctamente en ventana, F3 y F4 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
17 KiB
17 KiB