This commit is contained in:
2026-04-18 07:48:05 +02:00
parent 20b9a95619
commit 34a41ad25c
22 changed files with 97 additions and 79 deletions

View File

@@ -42,7 +42,7 @@ class AnimatedSprite : public MovingSprite {
AnimatedSprite(SDL_Renderer *renderer, animatedSprite_t *animation);
// Destructor
~AnimatedSprite();
~AnimatedSprite() override;
// Calcula el frame correspondiente a la animación actual
void animate();
@@ -86,7 +86,7 @@ class AnimatedSprite : public MovingSprite {
void setCurrentAnimation(int index = 0);
// Actualiza las variables del objeto
void update();
void update() override;
// OLD - Establece el rectangulo para un frame de una animación
void setAnimationFrames(Uint8 index_animation, Uint8 index_frame, int x, int y, int w, int h);

View File

@@ -10,19 +10,19 @@ constexpr int FADE_RANDOM_SQUARE = 2;
// Clase Fade
class Fade {
private:
SDL_Renderer *mRenderer = nullptr; // El renderizador de la ventana
SDL_Texture *mBackbuffer = nullptr; // Textura para usar como backbuffer
Uint8 mFadeType = FADE_FULLSCREEN; // Tipo de fade a realizar
Uint16 mCounter = 0; // Contador interno
bool mEnabled = false; // Indica si el fade está activo
bool mFinished = false; // Indica si ha terminado la transición
Uint8 mR = 0, mG = 0, mB = 0; // Colores para el fade
SDL_Renderer *mRenderer = nullptr; // El renderizador de la ventana
SDL_Texture *mBackbuffer = nullptr; // Textura para usar como backbuffer
Uint8 mFadeType = FADE_FULLSCREEN; // Tipo de fade a realizar
Uint16 mCounter = 0; // Contador interno
bool mEnabled = false; // Indica si el fade está activo
bool mFinished = false; // Indica si ha terminado la transición
Uint8 mR = 0, mG = 0, mB = 0; // Colores para el fade
Uint8 mROriginal = 0, mGOriginal = 0, mBOriginal = 0; // Colores originales para FADE_RANDOM_SQUARE
Uint32 mLastSquareTicks = 0; // Ticks del último cuadrado dibujado (FADE_RANDOM_SQUARE)
Uint16 mSquaresDrawn = 0; // Número de cuadrados dibujados (FADE_RANDOM_SQUARE)
bool mFullscreenDone = false; // Indica si el fade fullscreen ha terminado la fase de fundido
SDL_Rect mRect1{}; // Rectangulo usado para crear los efectos de transición
SDL_Rect mRect2{}; // Rectangulo usado para crear los efectos de transición
Uint32 mLastSquareTicks = 0; // Ticks del último cuadrado dibujado (FADE_RANDOM_SQUARE)
Uint16 mSquaresDrawn = 0; // Número de cuadrados dibujados (FADE_RANDOM_SQUARE)
bool mFullscreenDone = false; // Indica si el fade fullscreen ha terminado la fase de fundido
SDL_Rect mRect1{}; // Rectangulo usado para crear los efectos de transición
SDL_Rect mRect2{}; // Rectangulo usado para crear los efectos de transición
public:
// Constructor

View File

@@ -70,11 +70,13 @@ void MovingSprite::render() {
}
// Obtiene el valor de la variable
// cppcheck-suppress duplInheritedMember
float MovingSprite::getPosX() {
return x;
}
// Obtiene el valor de la variable
// cppcheck-suppress duplInheritedMember
float MovingSprite::getPosY() {
return y;
}

View File

@@ -8,8 +8,10 @@ class Texture;
// Clase MovingSprite. Añade posicion y velocidad en punto flotante
class MovingSprite : public Sprite {
protected:
float x; // Posición en el eje X
float y; // Posición en el eje Y
// cppcheck-suppress duplInheritedMember
float x; // Posición en el eje X (sub-pixel; Sprite::x es int)
// cppcheck-suppress duplInheritedMember
float y; // Posición en el eje Y (sub-pixel; Sprite::y es int)
float xPrev; // Posición anterior en el eje X
float yPrev; // Posición anterior en el eje Y
@@ -42,18 +44,20 @@ class MovingSprite : public Sprite {
void rotate();
// Actualiza las variables internas del objeto
void update();
virtual void update();
// Reinicia todas las variables
void clear();
// Muestra el sprite por pantalla
void render();
void render() override;
// Obten el valor de la variable
// cppcheck-suppress duplInheritedMember
float getPosX();
// Obten el valor de la variable
// cppcheck-suppress duplInheritedMember
float getPosY();
// Obten el valor de la variable
@@ -84,7 +88,7 @@ class MovingSprite : public Sprite {
Uint16 getRotateSpeed();
// Establece la posición y el tamaño del objeto
void setRect(SDL_Rect rect);
void setRect(SDL_Rect rect) override;
// Establece el valor de la variable
void setPosX(float value);
@@ -144,7 +148,7 @@ class MovingSprite : public Sprite {
SDL_FlipMode getFlip();
// Devuelve el rectangulo donde está el sprite
SDL_Rect getRect();
SDL_Rect getRect() override;
// Deshace el último movimiento
void undoMove();

View File

@@ -46,16 +46,6 @@ void SmartSprite::render() {
}
}
// Obtiene el valor de la variable
bool SmartSprite::isEnabled() {
return enabled;
}
// Establece el valor de la variable
void SmartSprite::setEnabled(bool enabled) {
this->enabled = enabled;
}
// Obtiene el valor de la variable
int SmartSprite::getEnabledCounter() {
return enabledCounter;

View File

@@ -9,7 +9,6 @@ class Texture;
class SmartSprite : public AnimatedSprite {
private:
// Variables
bool enabled; // Indica si esta habilitado
bool onDestination; // Indica si está en el destino
int destX; // Posicion de destino en el eje X
int destY; // Posicion de destino en el eje Y
@@ -30,16 +29,10 @@ class SmartSprite : public AnimatedSprite {
void init();
// Actualiza la posición y comprueba si ha llegado a su destino
void update();
void update() override;
// Pinta el objeto en pantalla
void render();
// Obtiene el valor de la variable
bool isEnabled();
// Establece el valor de la variable
void setEnabled(bool enabled);
void render() override;
// Obtiene el valor de la variable
int getEnabledCounter();

View File

@@ -23,10 +23,10 @@ class Sprite {
Sprite(SDL_Rect rect, Texture *texture, SDL_Renderer *renderer);
// Destructor
~Sprite();
virtual ~Sprite();
// Muestra el sprite por pantalla
void render();
virtual void render();
// Obten el valor de la variable
int getPosX();
@@ -77,14 +77,14 @@ class Sprite {
void setRenderer(SDL_Renderer *renderer);
// Establece el valor de la variable
void setEnabled(bool value);
virtual void setEnabled(bool value);
// Comprueba si el objeto está habilitado
bool isEnabled();
virtual bool isEnabled();
// Devuelve el rectangulo donde está el sprite
SDL_Rect getRect();
virtual SDL_Rect getRect();
// Establece los valores de posición y tamaño del sprite
void setRect(SDL_Rect rect);
virtual void setRect(SDL_Rect rect);
};