forked from jaildesigner-jailgames/jaildoctors_dilemma
57 lines
1.7 KiB
C++
57 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
#include <memory> // Para shared_ptr
|
|
#include <vector> // Para vector
|
|
class SurfaceAnimatedSprite; // lines 7-7
|
|
|
|
class GameOver {
|
|
private:
|
|
// Constantes
|
|
static constexpr int COUNTER_SECTION_END = 400; // Contador: cuando acaba la sección
|
|
static constexpr int COUNTER_INIT_FADE = 310; // Contador: cuando emiepza el fade
|
|
static constexpr int COUNTER_FADE_LENGHT = 20; // Contador: duración del fade
|
|
|
|
// Objetos y punteros
|
|
std::shared_ptr<SurfaceAnimatedSprite> player_sprite_; // Sprite con el jugador
|
|
std::shared_ptr<SurfaceAnimatedSprite> tv_sprite_; // Sprite con el televisor
|
|
|
|
// Variables
|
|
int pre_counter_ = 0; // Contador previo
|
|
int counter_ = 0; // Contador
|
|
Uint32 ticks_ = 0; // Contador de ticks para ajustar la velocidad del programa
|
|
std::vector<Uint8> colors_; // Vector con los colores para el fade
|
|
Uint8 color_; // Color usado para el texto y los sprites
|
|
|
|
// Actualiza el objeto
|
|
void update();
|
|
|
|
// Dibuja el final en pantalla
|
|
void render();
|
|
|
|
// Comprueba el manejador de eventos
|
|
static void checkEvents();
|
|
|
|
// Comprueba las entradas
|
|
static void checkInput();
|
|
|
|
// Actualiza el color usado para renderizar los textos e imagenes
|
|
void updateColor();
|
|
|
|
// Dibuja los sprites
|
|
void renderSprites();
|
|
|
|
// Actualiza los contadores
|
|
void updateCounters();
|
|
|
|
public:
|
|
// Constructor
|
|
GameOver();
|
|
|
|
// Destructor
|
|
~GameOver() = default;
|
|
|
|
// Bucle principal
|
|
void run();
|
|
}; |