// bala.hpp - Classe per a projectils de la nau // © 1999 Visente i Sergi (versió Pascal) // © 2025 Port a C++20 amb SDL3 #pragma once #include #include #include "core/graphics/shape.hpp" #include "core/types.hpp" class Bala { public: Bala() : renderer_(nullptr) {} Bala(SDL_Renderer* renderer); void inicialitzar(); void disparar(const Punt& posicio, float angle); void actualitzar(float delta_time); void dibuixar() const; // Getters (API pública sense canvis) bool esta_activa() const { return esta_; } const Punt& get_centre() const { return centre_; } void desactivar() { esta_ = false; } private: SDL_Renderer* renderer_; // [NUEVO] Forma vectorial (compartida entre totes les bales) std::shared_ptr forma_; // [NUEVO] Estat de la instància (separat de la geometria) Punt centre_; float angle_; float velocitat_; bool esta_; void mou(float delta_time); };