#pragma once #include #include #include "core/scene/scene.hpp" class Text; // Escena placeholder del logotip. Durada fixa (5 s) o skip amb qualsevol tecla // no reservada. Quan expira, encadena amb la `SceneFactory` que se li injecta // al ctor — així l'escena no coneix el tipus concret de la següent, i es pot // exercir en tests sense arrossegar GameScene. class LogoScene : public Scene { public: using SceneFactory = std::function()>; static constexpr int DURATION_MS = 5000; LogoScene(std::shared_ptr font, SceneFactory next_factory); ~LogoScene() override; void update(int delta_ms) override; void render() override; private: std::shared_ptr font_; SceneFactory next_factory_; int timer_ms_{DURATION_MS}; };