Files
aee-arcade/source/game/scenes/title_scene.hpp
T

37 lines
1.2 KiB
C++

#pragma once
#include <functional>
#include <memory>
#include <optional>
#include "core/rendering/effects/heat_haze.hpp"
#include "core/scene/scene.hpp"
class Surface;
class Text;
// Escena TITLE provisional. Pinta dos blocs de text sobre un fons gairebé
// negre i un prompt "press start" intermitent fins que apareix l'artwork
// real. Tota la cosmètica (colors, durada, ritme del parpadeig) viu a
// data/ui.yaml secció `title:` per poder afinar-la sense recompilar.
class TitleScene : public Scene {
public:
using SceneFactory = std::function<std::unique_ptr<Scene>()>;
TitleScene(std::shared_ptr<Text> display_font, std::shared_ptr<Text> condensed_font, std::shared_ptr<Surface> background, std::shared_ptr<Surface> mini_logo, SceneFactory next_factory);
~TitleScene() override;
void update(int delta_ms) override;
void render() override;
private:
std::shared_ptr<Text> display_font_;
std::shared_ptr<Text> condensed_font_;
std::shared_ptr<Surface> background_;
std::shared_ptr<Surface> mini_logo_;
SceneFactory next_factory_;
int timer_ms_;
int blink_elapsed_ms_{0};
std::optional<Effects::HeatHaze> heat_haze_;
};