Añadir tema LAVENDER + propuesta Temas Dinámicos

- Nuevo tema LAVENDER (7º tema)
  - Degradado: Violeta oscuro (120,80,140) → Azul medianoche (25,30,60)
  - Pelotas: Amarillo dorado monocromático (#FFD700)
  - Contraste complementario violeta-amarillo
  - Actualizado ColorTheme enum en defines.h
  - Actualizado themes_[7] en engine.h/cpp

- ROADMAP actualizado:
  - Temas visuales: 6/6 → 7/7 completadas
  - Nueva propuesta: Ítem 9 - Temas Dinámicos (Color Generativo)
    - Generación procedural de paletas HSV
    - Esquemas de armonía (mono/complementario/análogo/triádico)
    - Gradiente de fondo variable
    - Color de pelotas según esquema elegido
    - Controles: Tecla G (generar), Shift+G (ciclar esquemas)
    - Prioridad: Baja, Estimación: 4-6 horas

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-05 19:44:06 +02:00
parent 9390bd3b01
commit 38b8789884
4 changed files with 79 additions and 4 deletions

View File

@@ -3,7 +3,7 @@
#include <SDL3/SDL_stdinc.h> // for Uint64
// Configuración de ventana y pantalla
constexpr char WINDOW_CAPTION[] = "vibe3_physics";
constexpr char WINDOW_CAPTION[] = "ViBe3 Physics (JailDesigner 2025)";
// Resolución por defecto (usada si no se especifica en CLI)
constexpr int DEFAULT_SCREEN_WIDTH = 320; // Ancho lógico por defecto (si no hay -w)
@@ -61,7 +61,8 @@ enum class ColorTheme {
NEON = 2, // Cian, magenta, verde lima, amarillo vibrante
FOREST = 3, // Verdes, marrones, amarillos otoño
RGB = 4, // RGB puros y subdivisiones matemáticas (fondo blanco)
MONOCHROME = 5 // Fondo negro degradado, sprites blancos monocromáticos
MONOCHROME = 5, // Fondo negro degradado, sprites blancos monocromáticos
LAVENDER = 6 // Degradado violeta-azul, pelotas amarillo dorado
};
// Enum para tipo de figura 3D

View File

@@ -466,6 +466,10 @@ void Engine::handleEvents() {
startThemeTransition(ColorTheme::MONOCHROME);
break;
case SDLK_KP_7:
startThemeTransition(ColorTheme::LAVENDER);
break;
// Cambio de sprite/textura dinámico
case SDLK_N:
switchTexture();
@@ -1357,6 +1361,29 @@ void Engine::initializeThemes() {
{255, 255, 255},
{255, 255, 255},
{255, 255, 255}}};
// LAVENDER: Degradado violeta oscuro → azul medianoche, pelotas amarillo dorado monocromático
themes_[6] = {
"LAVENDER",
"LAVANDA", // Nombres (inglés, español)
255,
200,
100, // Color texto: amarillo cálido
120.0f / 255.0f,
80.0f / 255.0f,
140.0f / 255.0f, // Fondo superior (violeta oscuro)
25.0f / 255.0f,
30.0f / 255.0f,
60.0f / 255.0f, // Fondo inferior (azul medianoche)
{
{255, 215, 0}, // Amarillo dorado - todas las pelotas del mismo color
{255, 215, 0},
{255, 215, 0},
{255, 215, 0},
{255, 215, 0},
{255, 215, 0},
{255, 215, 0},
{255, 215, 0}}};
}
void Engine::startThemeTransition(ColorTheme new_theme) {

View File

@@ -97,7 +97,7 @@ class Engine {
};
// Temas de colores definidos
ThemeColors themes_[6]; // 6 temas: SUNSET, OCEAN, NEON, FOREST, RGB, MONOCHROME
ThemeColors themes_[7]; // 7 temas: SUNSET, OCEAN, NEON, FOREST, RGB, MONOCHROME, LAVENDER
// Sistema de Figuras 3D (polimórfico)
SimulationMode current_mode_ = SimulationMode::PHYSICS;