Fase 1: Migración inicial a C++20 modules

Implementada la estructura base de módulos para vibe2_modules:

- Configurado CMakeLists.txt para soportar C++23 y módulos
- Creado módulo core.cppm con tipos básicos (Color, ColorTheme, constantes)
- Creado módulo sdl_wrapper.cppm para encapsular SDL3
- Migrado defines.h completamente al módulo core
- Actualizado ball.h y ball.cpp para usar el módulo core
- Actualizado main.cpp para importar y usar el módulo core
- Eliminado defines.h obsoleto

El proyecto ahora compila y funciona con módulos C++20.
Próximos pasos: crear módulos especializados (physics, rendering, etc.)

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-17 21:17:40 +02:00
parent 34a0e0505b
commit ea6bb25d5d
7 changed files with 199 additions and 44 deletions
+4 -4
View File
@@ -4,7 +4,7 @@
#include <memory> // for shared_ptr, unique_ptr
#include "defines.h" // for Color
import vibe2.core; // for Color y constantes
#include "external/sprite.h" // for Sprite
class Texture;
@@ -14,14 +14,14 @@ class Ball {
SDL_FRect pos_; // Posición y tamaño de la pelota
float vx_, vy_; // Velocidad
float gravity_force_; // Gravedad
Color color_; // Color de la pelota
vibe2::Color color_; // Color de la pelota
bool on_floor_; // Indica si la pelota está ya en el suelo
bool stopped_; // Indica si la pelota ha terminado de moverse;
float loss_; // Coeficiente de rebote. Pérdida de energía en cada rebote
public:
// Constructor
Ball(float x, float vx, float vy, Color color, std::shared_ptr<Texture> texture);
Ball(float x, float vx, float vy, vibe2::Color color, std::shared_ptr<Texture> texture);
// Destructor
~Ball() = default;
@@ -45,5 +45,5 @@ class Ball {
// Getters para batch rendering
SDL_FRect getPosition() const { return pos_; }
Color getColor() const { return color_; }
vibe2::Color getColor() const { return color_; }
};