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>
14 lines
397 B
C++
14 lines
397 B
C++
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
// Interfície base per a totes les escenes del joc.
|
|
// Cada escena concreta implementa iterate() (un frame) i handleEvent() (un event).
|
|
// Director crida aquests mètodes des de SDL_AppIterate / SDL_AppEvent.
|
|
class Scene {
|
|
public:
|
|
virtual ~Scene() = default;
|
|
virtual void iterate() = 0;
|
|
virtual void handleEvent(const SDL_Event& event) = 0;
|
|
};
|