refactor: migració a l'arquitectura SDL3 Callback API
Substitueix el bucle blocant main() → Director::run() → escena::run() per SDL_AppInit/Iterate/Event/Quit. Cada escena implementa ara iterate() (un frame) i handleEvent() (un event) sota una interfície base Scene. - Director gestiona l'escena activa i les transicions via switchToActiveScene() - Setup/cleanup que estava al voltant del while de run() mogut a ctor/dtor (música de Game/Ending/Ending2, volum de LoadingScreen) - GlobalEvents ja no processa SDL_EVENT_QUIT (ho fa Director::handleEvent) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,17 +4,20 @@
|
||||
|
||||
#include <memory> // Para shared_ptr
|
||||
#include <vector> // Para vector
|
||||
|
||||
#include "game/scenes/scene.hpp" // Para Scene
|
||||
class AnimatedSprite; // lines 7-7
|
||||
class DeltaTimer; // Forward declaration
|
||||
|
||||
class GameOver {
|
||||
class GameOver : public Scene {
|
||||
public:
|
||||
// Constructor y Destructor
|
||||
GameOver();
|
||||
~GameOver() = default;
|
||||
~GameOver() override = default;
|
||||
|
||||
// Bucle principal
|
||||
void run();
|
||||
// Bucle principal (SDL3 Callback API)
|
||||
void iterate() override;
|
||||
void handleEvent(const SDL_Event& event) override;
|
||||
|
||||
private:
|
||||
// --- Enumeraciones ---
|
||||
@@ -45,10 +48,9 @@ class GameOver {
|
||||
static constexpr int NIGHTMARE_TEXT_Y_OFFSET = 120; // Offset Y del texto nightmare desde TEXT_Y
|
||||
|
||||
// --- Métodos ---
|
||||
void update(); // Actualiza el objeto
|
||||
void render(); // Dibuja el final en pantalla
|
||||
static void handleEvents(); // Comprueba el manejador de eventos
|
||||
static void handleInput(); // Comprueba las entradas
|
||||
void update(); // Actualiza el objeto
|
||||
void render(); // Dibuja el final en pantalla
|
||||
static void handleInput(); // Comprueba las entradas
|
||||
void updateState(); // Actualiza el estado y transiciones
|
||||
void updateColor(); // Actualiza el color usado para renderizar
|
||||
void renderSprites(); // Dibuja los sprites
|
||||
|
||||
Reference in New Issue
Block a user