commit marrano
This commit is contained in:
@@ -2,19 +2,19 @@
|
|||||||
|
|
||||||
#include <algorithm> // for std::min
|
#include <algorithm> // for std::min
|
||||||
|
|
||||||
#include "../theme_manager.h"
|
|
||||||
#include "../text/textrenderer.h"
|
#include "../text/textrenderer.h"
|
||||||
|
#include "../theme_manager.h"
|
||||||
|
|
||||||
HelpOverlay::HelpOverlay()
|
HelpOverlay::HelpOverlay()
|
||||||
: renderer_(nullptr)
|
: renderer_(nullptr),
|
||||||
, theme_mgr_(nullptr)
|
theme_mgr_(nullptr),
|
||||||
, text_renderer_(nullptr)
|
text_renderer_(nullptr),
|
||||||
, physical_width_(0)
|
physical_width_(0),
|
||||||
, physical_height_(0)
|
physical_height_(0),
|
||||||
, visible_(false)
|
visible_(false),
|
||||||
, box_size_(0)
|
box_size_(0),
|
||||||
, box_x_(0)
|
box_x_(0),
|
||||||
, box_y_(0) {
|
box_y_(0) {
|
||||||
// Llenar lista de controles (organizados por categoría, equilibrado en 2 columnas)
|
// Llenar lista de controles (organizados por categoría, equilibrado en 2 columnas)
|
||||||
key_bindings_ = {
|
key_bindings_ = {
|
||||||
// COLUMNA 1: SIMULACIÓN
|
// COLUMNA 1: SIMULACIÓN
|
||||||
@@ -24,7 +24,7 @@ HelpOverlay::HelpOverlay()
|
|||||||
{"B", "Modo Boids (enjambre)"},
|
{"B", "Modo Boids (enjambre)"},
|
||||||
{"ESPACIO", "Impulso contra gravedad"},
|
{"ESPACIO", "Impulso contra gravedad"},
|
||||||
{"G", "Toggle Gravedad ON/OFF"},
|
{"G", "Toggle Gravedad ON/OFF"},
|
||||||
{"↑↓←→", "Dirección de gravedad"},
|
{"CURSORES", "Dirección de gravedad"},
|
||||||
{"", ""}, // Separador
|
{"", ""}, // Separador
|
||||||
|
|
||||||
// COLUMNA 1: FIGURAS 3D
|
// COLUMNA 1: FIGURAS 3D
|
||||||
@@ -43,7 +43,7 @@ HelpOverlay::HelpOverlay()
|
|||||||
{"Shift+C", "Tema anterior"},
|
{"Shift+C", "Tema anterior"},
|
||||||
{"NumEnter", "Página de temas"},
|
{"NumEnter", "Página de temas"},
|
||||||
{"N", "Cambiar sprite"},
|
{"N", "Cambiar sprite"},
|
||||||
{"", ""}, // Separador -> CAMBIO DE COLUMNA
|
{"[new_col]", ""}, // Separador -> CAMBIO DE COLUMNA
|
||||||
|
|
||||||
// COLUMNA 2: PANTALLA
|
// COLUMNA 2: PANTALLA
|
||||||
{"PANTALLA", ""},
|
{"PANTALLA", ""},
|
||||||
@@ -52,6 +52,7 @@ HelpOverlay::HelpOverlay()
|
|||||||
{"F4", "Fullscreen real"},
|
{"F4", "Fullscreen real"},
|
||||||
{"F5", "Escalado (F3 activo)"},
|
{"F5", "Escalado (F3 activo)"},
|
||||||
{"V", "Toggle V-Sync"},
|
{"V", "Toggle V-Sync"},
|
||||||
|
{"", ""}, // Separador
|
||||||
|
|
||||||
// COLUMNA 2: MODOS
|
// COLUMNA 2: MODOS
|
||||||
{"MODOS", ""},
|
{"MODOS", ""},
|
||||||
@@ -59,13 +60,13 @@ HelpOverlay::HelpOverlay()
|
|||||||
{"Shift+D", "Pausar tema dinámico"},
|
{"Shift+D", "Pausar tema dinámico"},
|
||||||
{"L", "Modo DEMO LITE"},
|
{"L", "Modo DEMO LITE"},
|
||||||
{"K", "Modo LOGO (easter egg)"},
|
{"K", "Modo LOGO (easter egg)"},
|
||||||
|
{"", ""}, // Separador
|
||||||
|
|
||||||
// COLUMNA 2: DEBUG/AYUDA
|
// COLUMNA 2: DEBUG/AYUDA
|
||||||
{"DEBUG/AYUDA", ""},
|
{"DEBUG/AYUDA", ""},
|
||||||
{"F12", "Toggle info debug"},
|
{"F12", "Toggle info debug"},
|
||||||
{"H", "Esta ayuda"},
|
{"H", "Esta ayuda"},
|
||||||
{"ESC", "Salir"}
|
{"ESC", "Salir"}};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HelpOverlay::~HelpOverlay() {
|
HelpOverlay::~HelpOverlay() {
|
||||||
@@ -80,7 +81,7 @@ void HelpOverlay::initialize(SDL_Renderer* renderer, ThemeManager* theme_mgr, in
|
|||||||
|
|
||||||
// Crear renderer de texto con tamaño reducido (18px en lugar de 24px)
|
// Crear renderer de texto con tamaño reducido (18px en lugar de 24px)
|
||||||
text_renderer_ = new TextRenderer();
|
text_renderer_ = new TextRenderer();
|
||||||
text_renderer_->init(renderer, "data/fonts/determination.ttf", 18, true);
|
text_renderer_->init(renderer, "data/fonts/FunnelSans-Regular.ttf", 18, true);
|
||||||
|
|
||||||
calculateBoxDimensions();
|
calculateBoxDimensions();
|
||||||
}
|
}
|
||||||
@@ -112,7 +113,7 @@ void HelpOverlay::render(SDL_Renderer* renderer) {
|
|||||||
theme_mgr_->getCurrentNotificationBackgroundColor(notif_bg_r, notif_bg_g, notif_bg_b);
|
theme_mgr_->getCurrentNotificationBackgroundColor(notif_bg_r, notif_bg_g, notif_bg_b);
|
||||||
|
|
||||||
// Renderizar fondo semitransparente usando SDL_RenderGeometry (soporta alpha real)
|
// Renderizar fondo semitransparente usando SDL_RenderGeometry (soporta alpha real)
|
||||||
float alpha = 0.95f;
|
float alpha = 0.85f;
|
||||||
SDL_Vertex bg_vertices[4];
|
SDL_Vertex bg_vertices[4];
|
||||||
|
|
||||||
// Convertir RGB a float [0.0, 1.0]
|
// Convertir RGB a float [0.0, 1.0]
|
||||||
@@ -175,8 +176,7 @@ void HelpOverlay::renderHelpText() {
|
|||||||
box_x_ + box_size_ / 2 - title_width / 2,
|
box_x_ + box_size_ / 2 - title_width / 2,
|
||||||
current_y,
|
current_y,
|
||||||
title,
|
title,
|
||||||
category_color
|
category_color);
|
||||||
);
|
|
||||||
current_y += line_height * 2; // Espacio después del título
|
current_y += line_height * 2; // Espacio después del título
|
||||||
|
|
||||||
// Guardar Y inicial de contenido (después del título)
|
// Guardar Y inicial de contenido (después del título)
|
||||||
@@ -185,7 +185,7 @@ void HelpOverlay::renderHelpText() {
|
|||||||
// Renderizar cada línea
|
// Renderizar cada línea
|
||||||
for (const auto& binding : key_bindings_) {
|
for (const auto& binding : key_bindings_) {
|
||||||
// Si es un separador (descripción vacía), cambiar de columna
|
// Si es un separador (descripción vacía), cambiar de columna
|
||||||
if (binding.description[0] == '\0' && binding.key[0] == '\0') {
|
if (strcmp(binding.key, "[new_col]") == 0 && binding.description[0] == '\0') {
|
||||||
if (current_column == 0) {
|
if (current_column == 0) {
|
||||||
// Cambiar a columna derecha
|
// Cambiar a columna derecha
|
||||||
current_column = 1;
|
current_column = 1;
|
||||||
@@ -202,8 +202,7 @@ void HelpOverlay::renderHelpText() {
|
|||||||
current_x,
|
current_x,
|
||||||
current_y,
|
current_y,
|
||||||
binding.key,
|
binding.key,
|
||||||
category_color
|
category_color);
|
||||||
);
|
|
||||||
current_y += line_height + 2; // Espacio extra después de encabezado
|
current_y += line_height + 2; // Espacio extra después de encabezado
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -213,8 +212,7 @@ void HelpOverlay::renderHelpText() {
|
|||||||
current_x,
|
current_x,
|
||||||
current_y,
|
current_y,
|
||||||
binding.key,
|
binding.key,
|
||||||
content_color
|
content_color);
|
||||||
);
|
|
||||||
|
|
||||||
// Renderizar descripción con color de contenido
|
// Renderizar descripción con color de contenido
|
||||||
int key_width = text_renderer_->getTextWidthPhysical(binding.key);
|
int key_width = text_renderer_->getTextWidthPhysical(binding.key);
|
||||||
@@ -222,8 +220,7 @@ void HelpOverlay::renderHelpText() {
|
|||||||
current_x + key_width + 10, // Espacio entre tecla y descripción
|
current_x + key_width + 10, // Espacio entre tecla y descripción
|
||||||
current_y,
|
current_y,
|
||||||
binding.description,
|
binding.description,
|
||||||
content_color
|
content_color);
|
||||||
);
|
|
||||||
|
|
||||||
current_y += line_height;
|
current_y += line_height;
|
||||||
|
|
||||||
|
|||||||
@@ -57,9 +57,9 @@ void UIManager::initialize(SDL_Renderer* renderer, ThemeManager* theme_manager,
|
|||||||
|
|
||||||
// Inicializar renderers
|
// Inicializar renderers
|
||||||
// (el tamaño se configura dinámicamente en Engine según resolución)
|
// (el tamaño se configura dinámicamente en Engine según resolución)
|
||||||
text_renderer_->init(renderer, "data/fonts/determination.ttf", 24, true);
|
text_renderer_->init(renderer, "data/fonts/FunnelSans-Regular.ttf", 18, true);
|
||||||
text_renderer_debug_->init(renderer, "data/fonts/determination.ttf", 24, true);
|
text_renderer_debug_->init(renderer, "data/fonts/FunnelSans-Regular.ttf", 18, true);
|
||||||
text_renderer_notifier_->init(renderer, "data/fonts/determination.ttf", 24, true);
|
text_renderer_notifier_->init(renderer, "data/fonts/FunnelSans-Regular.ttf", 18, true);
|
||||||
|
|
||||||
// Crear y configurar sistema de notificaciones
|
// Crear y configurar sistema de notificaciones
|
||||||
notifier_ = new Notifier();
|
notifier_ = new Notifier();
|
||||||
|
|||||||
Reference in New Issue
Block a user