// escena_joc.hpp - Lògica principal del joc // © 1999 Visente i Sergi (versió Pascal) // © 2025 Port a C++20 amb SDL3 #ifndef ESCENA_JOC_HPP #define ESCENA_JOC_HPP #include #include #include #include "../../core/graphics/vector_text.hpp" #include "../../core/rendering/sdl_manager.hpp" #include "../../core/types.hpp" #include "../constants.hpp" #include "../effects/debris_manager.hpp" #include "../entities/bala.hpp" #include "../entities/enemic.hpp" #include "../entities/nau.hpp" // Classe principal del joc (escena) class EscenaJoc { public: explicit EscenaJoc(SDLManager& sdl); ~EscenaJoc() = default; void executar(); // Bucle principal de l'escena void inicialitzar(); void actualitzar(float delta_time); void dibuixar(); void processar_input(const SDL_Event& event); private: SDLManager& sdl_; // Efectes visuals Effects::DebrisManager debris_manager_; // Estat del joc Nau nau_; std::array orni_; std::array bales_; Poligon chatarra_cosmica_; uint16_t itocado_; // Text vectorial Graphics::VectorText text_; // Funcions privades void tocado(); void dibuixar_marges() const; // Dibuixar vores de la zona de joc void dibuixar_marcador(); // Dibuixar marcador de puntuació }; #endif // ESCENA_JOC_HPP