Refactorización inicial: Crear estructura de clase Engine

PROGRESO INTERMEDIO - Estructura base de Engine implementada:

Nuevos archivos:
- engine.h: Declaración completa de clase Engine con encapsulación
- engine.cpp: Esqueleto de implementación con métodos stub
- main_new.cpp: Nuevo main simplificado (15 líneas vs 580)

Cambios en archivos existentes:
- defines.h: Añadir enum ColorTheme (centralizar definiciones)
- main.cpp: Eliminar enum ColorTheme duplicado

Arquitectura Engine:
- Encapsulación completa de variables globales (SDL, estado, timing, UI)
- Métodos organizados por responsabilidad (public/private)
- Eliminación de problemas de orden de declaración
- Base sólida para futuras extensiones

Estado: Compilación exitosa 
Pendiente: Migrar funcionalidad completa de métodos stub

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-18 17:09:42 +02:00
parent 78656cf17d
commit cada46f732
5 changed files with 253 additions and 12 deletions

View File

@@ -55,13 +55,7 @@ bool show_debug = false; // Debug display desactivado por defecto
// Variable para direcci\u00f3n de gravedad
GravityDirection current_gravity = GravityDirection::DOWN; // Gravedad inicial hacia abajo
// Sistema de temas de colores
enum class ColorTheme {
SUNSET = 0,
OCEAN = 1,
NEON = 2,
FOREST = 3
};
// Sistema de temas de colores (enum movido a defines.h)
ColorTheme current_theme = ColorTheme::SUNSET;
std::string theme_names[] = {"SUNSET", "OCEAN", "NEON", "FOREST"};
@@ -210,6 +204,9 @@ void setText() {
// Inicializa las bolas según el escenario seleccionado
void initBalls(int value) {
balls.clear();
// Resetear gravedad al estado por defecto (DOWN) al cambiar escenario
current_gravity = GravityDirection::DOWN;
for (int i = 0; i < test.at(value); ++i) {
const int SIGN = ((rand() % 2) * 2) - 1; // Genera un signo aleatorio (+ o -)
const float X = (rand() % (SCREEN_WIDTH / 2)) + (SCREEN_WIDTH / 4); // Posición inicial en X