Afegits estats al fade
Afegida opció de prefade El modo demo ja comença a meitat del "meollo"
This commit is contained in:
@@ -21,6 +21,16 @@ enum class FadeMode : Uint8
|
||||
OUT = 1,
|
||||
};
|
||||
|
||||
// Estados del objeto
|
||||
enum class FadeState : Uint8
|
||||
{
|
||||
NOT_ENABLED = 0,
|
||||
PRE = 1,
|
||||
FADING = 2,
|
||||
POST = 3,
|
||||
FINISHED = 4,
|
||||
};
|
||||
|
||||
// Clase Fade
|
||||
class Fade
|
||||
{
|
||||
@@ -30,22 +40,23 @@ private:
|
||||
SDL_Texture *backbuffer_; // Textura para usar como backbuffer con SDL_TEXTUREACCESS_TARGET
|
||||
|
||||
// Variables
|
||||
FadeType type_; // Tipo de fade a realizar
|
||||
FadeMode mode_; // Modo de fade a realizar
|
||||
Uint16 counter_; // Contador interno
|
||||
bool enabled_; // Indica si el fade está activo
|
||||
bool finished_; // Indica si ha terminado la transición
|
||||
Uint8 r_, g_, b_, a_; // Colores para el fade
|
||||
SDL_Rect rect1_; // Rectangulo usado para crear los efectos de transición
|
||||
SDL_Rect rect2_; // Rectangulo usado para crear los efectos de transición
|
||||
int num_squares_width_; // Cantidad total de cuadraditos en horizontal para el FadeType::RANDOM_SQUARE
|
||||
int num_squares_height_; // Cantidad total de cuadraditos en vertical para el FadeType::RANDOM_SQUARE
|
||||
std::vector<SDL_Rect> square_; // Vector con los indices de los cuadrados para el FadeType::RANDOM_SQUARE
|
||||
int fade_random_squares_delay_; // Duración entre cada pintado de cuadrados
|
||||
int fade_random_squares_mult_; // Cantidad de cuadrados que se pintaran cada vez
|
||||
int post_duration_; // Duración posterior del fade tras finalizar
|
||||
int post_counter_; // Contador para la duración posterior
|
||||
int value_ = 0; // Estado actual del fade entre 0 y 100
|
||||
FadeType type_; // Tipo de fade a realizar
|
||||
FadeMode mode_; // Modo de fade a realizar
|
||||
FadeState state_ = FadeState::NOT_ENABLED; // Estado actual del objeto
|
||||
Uint16 counter_; // Contador interno
|
||||
Uint8 r_, g_, b_, a_; // Colores para el fade
|
||||
SDL_Rect rect1_; // Rectangulo usado para crear los efectos de transición
|
||||
SDL_Rect rect2_; // Rectangulo usado para crear los efectos de transición
|
||||
int num_squares_width_; // Cantidad total de cuadraditos en horizontal para el FadeType::RANDOM_SQUARE
|
||||
int num_squares_height_; // Cantidad total de cuadraditos en vertical para el FadeType::RANDOM_SQUARE
|
||||
std::vector<SDL_Rect> square_; // Vector con los indices de los cuadrados para el FadeType::RANDOM_SQUARE
|
||||
int fade_random_squares_delay_; // Duración entre cada pintado de cuadrados
|
||||
int fade_random_squares_mult_; // Cantidad de cuadrados que se pintaran cada vez
|
||||
int post_duration_ = 0; // Duración posterior del fade tras finalizar
|
||||
int post_counter_ = 0; // Contador para la duración posterior
|
||||
int pre_duration_ = 0; // Duración previa del fade antes de iniciar
|
||||
int pre_counter_ = 0; // Contador para la duración previa
|
||||
int value_ = 0; // Estado actual del fade entre 0 y 100
|
||||
|
||||
// Inicializa las variables
|
||||
void init();
|
||||
@@ -80,11 +91,12 @@ public:
|
||||
|
||||
// Getters
|
||||
int getValue() const { return value_; }
|
||||
bool isEnabled() const { return enabled_; }
|
||||
bool hasEnded() const { return !enabled_ && finished_; }
|
||||
bool isEnabled() const { return state_ != FadeState::NOT_ENABLED; }
|
||||
bool hasEnded() const { return state_ == FadeState::FINISHED; }
|
||||
|
||||
// Setters
|
||||
void setType(FadeType type) { type_ = type; }
|
||||
void setMode(FadeMode mode) { mode_ = mode; }
|
||||
void setPost(int value) { post_duration_ = value; }
|
||||
void setPostDuration(int value) { post_duration_ = value; }
|
||||
void setPreDuration(int value) { pre_duration_ = value; }
|
||||
};
|
||||
Reference in New Issue
Block a user