FADE_* → enum class Fade::Type
This commit is contained in:
@@ -27,7 +27,7 @@ Fade::~Fade() {
|
|||||||
|
|
||||||
// Inicializa las variables
|
// Inicializa las variables
|
||||||
void Fade::init(Uint8 r, Uint8 g, Uint8 b) {
|
void Fade::init(Uint8 r, Uint8 g, Uint8 b) {
|
||||||
fade_type_ = FADE_CENTER;
|
fade_type_ = Type::CENTER;
|
||||||
enabled_ = false;
|
enabled_ = false;
|
||||||
finished_ = false;
|
finished_ = false;
|
||||||
counter_ = 0;
|
counter_ = 0;
|
||||||
@@ -46,13 +46,13 @@ void Fade::init(Uint8 r, Uint8 g, Uint8 b) {
|
|||||||
void Fade::render() {
|
void Fade::render() {
|
||||||
if (enabled_ && !finished_) {
|
if (enabled_ && !finished_) {
|
||||||
switch (fade_type_) {
|
switch (fade_type_) {
|
||||||
case FADE_FULLSCREEN:
|
case Type::FULLSCREEN:
|
||||||
renderFadeFullscreen();
|
renderFadeFullscreen();
|
||||||
break;
|
break;
|
||||||
case FADE_CENTER:
|
case Type::CENTER:
|
||||||
renderFadeCenter();
|
renderFadeCenter();
|
||||||
break;
|
break;
|
||||||
case FADE_RANDOM_SQUARE:
|
case Type::RANDOM_SQUARE:
|
||||||
renderFadeRandomSquare();
|
renderFadeRandomSquare();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -66,7 +66,7 @@ void Fade::render() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper de render: tipo FADE_FULLSCREEN
|
// Helper de render: tipo FULLSCREEN
|
||||||
void Fade::renderFadeFullscreen() {
|
void Fade::renderFadeFullscreen() {
|
||||||
if (fullscreen_done_) {
|
if (fullscreen_done_) {
|
||||||
return;
|
return;
|
||||||
@@ -100,7 +100,7 @@ void Fade::renderFadeFullscreen() {
|
|||||||
SDL_RenderFillRect(renderer_, &f_rect1);
|
SDL_RenderFillRect(renderer_, &f_rect1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper de render: tipo FADE_CENTER
|
// Helper de render: tipo CENTER
|
||||||
void Fade::renderFadeCenter() {
|
void Fade::renderFadeCenter() {
|
||||||
SDL_FRect f_r1 = {0, 0, (float)GAMECANVAS_WIDTH, 0};
|
SDL_FRect f_r1 = {0, 0, (float)GAMECANVAS_WIDTH, 0};
|
||||||
SDL_FRect f_r2 = {0, 0, (float)GAMECANVAS_WIDTH, 0};
|
SDL_FRect f_r2 = {0, 0, (float)GAMECANVAS_WIDTH, 0};
|
||||||
@@ -120,7 +120,7 @@ void Fade::renderFadeCenter() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper de render: tipo FADE_RANDOM_SQUARE
|
// Helper de render: tipo RANDOM_SQUARE
|
||||||
void Fade::renderFadeRandomSquare() {
|
void Fade::renderFadeRandomSquare() {
|
||||||
const Uint32 NOW = SDL_GetTicks();
|
const Uint32 NOW = SDL_GetTicks();
|
||||||
if (squares_drawn_ < 50 && NOW - last_square_ticks_ >= 100) {
|
if (squares_drawn_ < 50 && NOW - last_square_ticks_ >= 100) {
|
||||||
@@ -186,6 +186,6 @@ auto Fade::hasEnded() const -> bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Establece el tipo de fade
|
// Establece el tipo de fade
|
||||||
void Fade::setFadeType(Uint8 fade_type) {
|
void Fade::setFadeType(Type fade_type) {
|
||||||
fade_type_ = fade_type;
|
fade_type_ = fade_type;
|
||||||
}
|
}
|
||||||
@@ -2,14 +2,17 @@
|
|||||||
|
|
||||||
#include <SDL3/SDL.h>
|
#include <SDL3/SDL.h>
|
||||||
|
|
||||||
// Tipos de fundido
|
#include <cstdint>
|
||||||
constexpr int FADE_FULLSCREEN = 0;
|
|
||||||
constexpr int FADE_CENTER = 1;
|
|
||||||
constexpr int FADE_RANDOM_SQUARE = 2;
|
|
||||||
|
|
||||||
// Clase Fade
|
// Clase Fade
|
||||||
class Fade {
|
class Fade {
|
||||||
public:
|
public:
|
||||||
|
enum class Type : std::uint8_t {
|
||||||
|
FULLSCREEN,
|
||||||
|
CENTER,
|
||||||
|
RANDOM_SQUARE
|
||||||
|
};
|
||||||
|
|
||||||
explicit Fade(SDL_Renderer *renderer); // Constructor
|
explicit Fade(SDL_Renderer *renderer); // Constructor
|
||||||
~Fade(); // Destructor
|
~Fade(); // Destructor
|
||||||
|
|
||||||
@@ -21,23 +24,23 @@ class Fade {
|
|||||||
[[nodiscard]] auto hasEnded() const -> bool; // Comprueba si ha terminado la transicion
|
[[nodiscard]] auto hasEnded() const -> bool; // Comprueba si ha terminado la transicion
|
||||||
[[nodiscard]] auto isEnabled() const -> bool; // Comprueba si está activo
|
[[nodiscard]] auto isEnabled() const -> bool; // Comprueba si está activo
|
||||||
|
|
||||||
void setFadeType(Uint8 fade_type); // Establece el tipo de fade
|
void setFadeType(Type fade_type); // Establece el tipo de fade
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void renderFadeFullscreen(); // Helper de render: tipo FADE_FULLSCREEN
|
void renderFadeFullscreen(); // Helper de render: tipo FULLSCREEN
|
||||||
void renderFadeCenter(); // Helper de render: tipo FADE_CENTER
|
void renderFadeCenter(); // Helper de render: tipo CENTER
|
||||||
void renderFadeRandomSquare(); // Helper de render: tipo FADE_RANDOM_SQUARE
|
void renderFadeRandomSquare(); // Helper de render: tipo RANDOM_SQUARE
|
||||||
|
|
||||||
SDL_Renderer *renderer_ = nullptr; // El renderizador de la ventana
|
SDL_Renderer *renderer_ = nullptr; // El renderizador de la ventana
|
||||||
SDL_Texture *backbuffer_ = nullptr; // Textura para usar como backbuffer
|
SDL_Texture *backbuffer_ = nullptr; // Textura para usar como backbuffer
|
||||||
Uint8 fade_type_ = FADE_FULLSCREEN; // Tipo de fade a realizar
|
Type fade_type_{Type::FULLSCREEN}; // Tipo de fade a realizar
|
||||||
Uint16 counter_ = 0; // Contador interno
|
Uint16 counter_ = 0; // Contador interno
|
||||||
bool enabled_ = false; // Indica si el fade está activo
|
bool enabled_ = false; // Indica si el fade está activo
|
||||||
bool finished_ = false; // Indica si ha terminado la transición
|
bool finished_ = false; // Indica si ha terminado la transición
|
||||||
Uint8 r_ = 0, g_ = 0, b_ = 0; // Colores para el fade
|
Uint8 r_ = 0, g_ = 0, b_ = 0; // Colores para el fade
|
||||||
Uint8 r_original_ = 0, g_original_ = 0, b_original_ = 0; // Colores originales para FADE_RANDOM_SQUARE
|
Uint8 r_original_ = 0, g_original_ = 0, b_original_ = 0; // Colores originales para RANDOM_SQUARE
|
||||||
Uint32 last_square_ticks_ = 0; // Ticks del último cuadrado dibujado (FADE_RANDOM_SQUARE)
|
Uint32 last_square_ticks_ = 0; // Ticks del último cuadrado dibujado (RANDOM_SQUARE)
|
||||||
Uint16 squares_drawn_ = 0; // Número de cuadrados dibujados (FADE_RANDOM_SQUARE)
|
Uint16 squares_drawn_ = 0; // Número de cuadrados dibujados (RANDOM_SQUARE)
|
||||||
bool fullscreen_done_ = false; // Indica si el fade fullscreen ha terminado la fase de fundido
|
bool fullscreen_done_ = false; // Indica si el fade fullscreen ha terminado la fase de fundido
|
||||||
SDL_Rect rect1_{}; // Rectangulo usado para crear los efectos de transición
|
SDL_Rect rect1_{}; // Rectangulo usado para crear los efectos de transición
|
||||||
SDL_Rect rect2_{}; // Rectangulo usado para crear los efectos de transición
|
SDL_Rect rect2_{}; // Rectangulo usado para crear los efectos de transición
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#include "core/input/global_inputs.hpp" // for GlobalInputs::handle
|
#include "core/input/global_inputs.hpp" // for GlobalInputs::handle
|
||||||
#include "core/input/input.h" // for InputAction, Input, Input::Repeat::ON, Input::Repeat::OFF
|
#include "core/input/input.h" // for InputAction, Input, Input::Repeat::ON, Input::Repeat::OFF
|
||||||
#include "core/locale/lang.h" // for Lang
|
#include "core/locale/lang.h" // for Lang
|
||||||
#include "core/rendering/fade.h" // for Fade, FADE_CENTER
|
#include "core/rendering/fade.h" // for Fade
|
||||||
#include "core/rendering/movingsprite.h" // for MovingSprite
|
#include "core/rendering/movingsprite.h" // for MovingSprite
|
||||||
#include "core/rendering/screen.h" // for Screen
|
#include "core/rendering/screen.h" // for Screen
|
||||||
#include "core/rendering/smartsprite.h" // for SmartSprite
|
#include "core/rendering/smartsprite.h" // for SmartSprite
|
||||||
@@ -2836,7 +2836,7 @@ void Game::updatePauseMenuUI() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
fade_->setFadeType(FADE_CENTER);
|
fade_->setFadeType(Fade::Type::CENTER);
|
||||||
fade_->activateFade();
|
fade_->activateFade();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user