Implementar tema MONOCHROME (6º tema visual) - Tecla KP_6

- Fondo negro degradado (similar a NEON)
- 8 tonos de gris: blanco puro a gris muy oscuro
- Estética minimalista monocromática
- Ciclo con tecla B incluye nuevo tema
- Actualizado README con documentación

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-04 06:58:39 +02:00
parent 5391e0cddf
commit 95ab6dea46
7 changed files with 143 additions and 8 deletions

View File

@@ -53,11 +53,12 @@ enum class GravityDirection {
// Enum para temas de colores (seleccionables con teclado numérico)
enum class ColorTheme {
SUNSET = 0, // Naranjas, rojos, amarillos, rosas
OCEAN = 1, // Azules, turquesas, blancos
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)
SUNSET = 0, // Naranjas, rojos, amarillos, rosas
OCEAN = 1, // Azules, turquesas, blancos
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
};
// Enum para tipo de figura 3D

View File

@@ -316,6 +316,11 @@ void Engine::handleEvents() {
initBalls(scenario_);
break;
case SDLK_KP_6:
current_theme_ = ColorTheme::MONOCHROME;
initBalls(scenario_);
break;
// Control de escala de figura (solo en modo SHAPE)
case SDLK_KP_PLUS:
if (current_mode_ == SimulationMode::SHAPE) {
@@ -979,6 +984,22 @@ void Engine::initializeThemes() {
{255, 0, 64} // 345° - Magenta claro-Rojo
}
};
// MONOCHROME: Fondo negro degradado, sprites blancos monocromáticos (8 tonos grises)
themes_[5] = {
20.0f / 255.0f, 20.0f / 255.0f, 20.0f / 255.0f, // Fondo superior (gris muy oscuro)
0.0f / 255.0f, 0.0f / 255.0f, 0.0f / 255.0f, // Fondo inferior (negro puro)
{
{255, 255, 255}, // Blanco puro
{230, 230, 230}, // Gris muy claro
{200, 200, 200}, // Gris claro
{170, 170, 170}, // Gris medio-claro
{140, 140, 140}, // Gris medio
{110, 110, 110}, // Gris medio-oscuro
{80, 80, 80}, // Gris oscuro
{50, 50, 50} // Gris muy oscuro
}
};
}
void Engine::checkAutoRestart() {

View File

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