- Game::runPausedGame() convertit a enterPausedGame() + despatx directe en run() - Game::runGameOverScreen() convertit a enterGameOverScreen() + despatx directe - Eliminada variable static postFade, convertida a membre gameOverPostFade - Extret SDL_PollEvent de updateGameOverScreen() a checkGameOverEvents() - Game::run() refactoritzat amb iterate() + hasFinished() per preparar callbacks - Title::runInstructions() i runDemoGame() convertits a no-bloquejants - Instructions ara usa finished/quitRequested en lloc de modificar section directament - Instructions exposa start(), update(), checkEvents(), render(), hasFinished() Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
54 lines
1.9 KiB
C++
54 lines
1.9 KiB
C++
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
// Tipos de fundido
|
|
constexpr int FADE_FULLSCREEN = 0;
|
|
constexpr int FADE_CENTER = 1;
|
|
constexpr int FADE_RANDOM_SQUARE = 2;
|
|
|
|
// Clase Fade
|
|
class Fade {
|
|
private:
|
|
SDL_Renderer *mRenderer; // El renderizador de la ventana
|
|
SDL_Texture *mBackbuffer; // Textura para usar como backbuffer
|
|
Uint8 mFadeType; // Tipo de fade a realizar
|
|
Uint16 mCounter; // Contador interno
|
|
bool mEnabled; // Indica si el fade está activo
|
|
bool mFinished; // Indica si ha terminado la transición
|
|
Uint8 mR, mG, mB; // Colores para el fade
|
|
Uint8 mROriginal, mGOriginal, mBOriginal; // Colores originales para FADE_RANDOM_SQUARE
|
|
Uint32 mLastSquareTicks; // Ticks del último cuadrado dibujado (FADE_RANDOM_SQUARE)
|
|
Uint16 mSquaresDrawn; // Número de cuadrados dibujados (FADE_RANDOM_SQUARE)
|
|
bool mFullscreenDone; // 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
|
|
Fade(SDL_Renderer *renderer);
|
|
|
|
// Destructor
|
|
~Fade();
|
|
|
|
// Inicializa las variables
|
|
void init(Uint8 r, Uint8 g, Uint8 b);
|
|
|
|
// Pinta una transición en pantalla
|
|
void render();
|
|
|
|
// Actualiza las variables internas
|
|
void update();
|
|
|
|
// Activa el fade
|
|
void activateFade();
|
|
|
|
// Comprueba si ha terminado la transicion
|
|
bool hasEnded();
|
|
|
|
// Comprueba si está activo
|
|
bool isEnabled();
|
|
|
|
// Establece el tipo de fade
|
|
void setFadeType(Uint8 fadeType);
|
|
}; |