Files
coffee_crisis_arcade_edition/source/on_screen_help.h

69 lines
1.6 KiB
C++

#pragma once
#include <SDL2/SDL.h>
class Screen;
class Asset;
class Input;
class Texture;
class Sprite;
enum class OnScreenHelpStatus
{
hidden,
showing,
entering,
exitting,
};
// Classe on_screen_help
class OnScreenHelp
{
private:
// [SINGLETON] Objeto screen privado para Don Melitón
static OnScreenHelp *onScreenHelp;
Screen *screen; // Objeto encargado de dibujar en pantalla
Asset *asset; // Objeto con los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
SDL_Texture *texture; // Textura donde dibujar
SDL_Rect dest; // Posición donde dibujar la textura;
OnScreenHelpStatus state; // Estado del objeto
// [SINGLETON] Ahora el constructor y el destructor son privados, para no poder crear objetos screen desde fuera
// Constructor
OnScreenHelp();
// Destructor
~OnScreenHelp();
// Rellena la textura con los gráficos y texto
void fillTexture();
// Define el ancho y alto de la textura
void setSize();
// Calcula la longitud en pixels del texto más largo
int getLargestStringSize() const;
public:
// [SINGLETON] Crearemos el objeto screen con esta función estática
static void init();
// [SINGLETON] Destruiremos el objeto screen con esta función estática
static void destroy();
// [SINGLETON] Con este método obtenemos el objeto screen y podemos trabajar con él
static OnScreenHelp *get();
// Actualiza la lógica interna
void update();
// Muestra el objeto en pantalla
void render();
// Activa o desactiva el objeto
void toggleState();
};