diff --git a/main.cpp b/main.cpp index cc0f35d..814804f 100644 --- a/main.cpp +++ b/main.cpp @@ -30,16 +30,24 @@ Text *debugText; Texture *texture; MovingSprite *sprite; -Uint32 ticks = 0; -Uint32 ticksSpeed = 15; -bool should_exit = false; -int counter = 0; +enum e_fx // Tipos de efectos disponibles para el fondo +{ + fx_fire, + fx_gradient +}; + +Uint32 ticks = 0; // Variable para la frecuencia de actualización de la lógica del programa +Uint32 ticksSpeed = 15; // Variable para la frecuencia de actualización de la lógica del programa +bool should_exit = false; // Variable para saber si ha terminado el progra,a +int counter = 0; // Contador para lo que se necesite int gradColorMin = 64; // Minimo color más alto del degradado int gradColorMax = 192; // Minimo color más alto del degradado int gradCurrentColor = 192; // Color actual más alto del degradado int gradBreathDirection = 0; // Indica si gradCurrentColor crece o decrece -string controllerName; -string inputPressed; +string controllerName; // Nombre del primer mando detectado +string inputPressed; // Texto con el último input que se ha pulsado +e_fx fx = fx_gradient; // Efecto seleccionado para el fondo +int fxTotal = 2; // Cantidad total de efectos disponibles para el fondo // Inicializa las opciones void initOptions(); @@ -71,6 +79,9 @@ void initText(); // Inicializa el sprite void initSprite(); +// Inicializa el efecto de fuego +void initFire(); + // Inicializa todo void initAll(char *argv[]); @@ -83,15 +94,27 @@ void checkInput(); // Actualiza el sprite void updateSprite(); -// Actualiza el degradado +// Actualiza el efecto de degradado void updateGradient(); +// Actualiza el efecto de fuego +void updateFire(); + +// Actualiza el efecto de fondo +void updateFX(); + // Actualiza la lógica del programa void update(); // Dibuja un degradado de fondo void renderGradient(); +// Dibuja el efecto de fuego +void renderFire(); + +// Dibuja el efecto de fondo +void renderFX(); + // Dibuja el texto void renderText(); @@ -214,6 +237,11 @@ void initSprite() sprite->setVelY(2); } +// Inicializa el efecto de fuego +void initFire() +{ +} + // Inicializa todo void initAll(char *argv[]) { @@ -246,6 +274,9 @@ void initAll(char *argv[]) // Inicializa el sprite initSprite(); + + // Inicializa el efecto de fuego + initFire(); } // Comprueba el teclado y los eventos @@ -365,6 +396,29 @@ void updateGradient() } } +// Actualiza el efecto de fuego +void updateFire() +{ +} + +// Actualiza el efecto de fondo +void updateFX() +{ + switch (fx) + { + case fx_fire: + updateFire(); + break; + + case fx_gradient: + updateGradient(); + break; + + default: + break; + } +} + // Actualiza la lógica del programa void update() { @@ -389,8 +443,8 @@ void update() // Actualiza el sprite updateSprite(); - // Actualiza el degradado - updateGradient(); + // Actualiza el efecto de fondo + updateFX(); } } @@ -419,6 +473,29 @@ void renderGradient() } } +// Dibuja el efecto de fuego +void renderFire() +{ +} + +// Dibuja el efecto de fondo +void renderFX() +{ + switch (fx) + { + case fx_fire: + renderFire(); + break; + + case fx_gradient: + renderGradient(); + break; + + default: + break; + } +} + // Dibuja el texto void renderText() { @@ -440,8 +517,8 @@ void render() screen->start(); screen->clean(); - // Dibuja un degradado de fondo - renderGradient(); + // Dibuja el efecto de fondo + renderFX(); // Dibuja el sprite sprite->render();