Files
volcano_2022/source/scoreboard.h

77 lines
1.8 KiB
C++

#pragma once
#include <SDL2/SDL.h>
#include "common/asset.h"
#include "common/const.h"
#include "common/input.h"
#include "common/sprite.h"
#include "common/text.h"
#include "common/utils.h"
#include <string>
#ifndef SCOREBOARD_H
#define SCOREBOARD_H
struct board_t
{
int diamonds; // Lleva la cuenta de los objetos recogidos
int lives; // Lleva la cuenta de ls vidas restantes del jugador
};
enum sb_state_e
{
sb_show,
sb_hide,
sb_showing,
sb_hiding
};
// Clase ScoreBoard
class ScoreBoard
{
private:
// Objetos y punteros
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
board_t *board; // Contiene las variables a mostrar en el marcador
Input *input; // Objeto Input para gestionar las entradas
Texture *texture; // Textura con los graficos
SDL_Renderer *renderer; // El renderizador de la ventana
SDL_Texture *layer; // Textura donde dibujar el marcador
Sprite *sprite; // Sprite para mostrar los graficos
Text *text; // Objeto para escribir texto
// Variables
int counter; // Contador interno
int fadingCounter; // Contador para el desvanecimiento del marcador
sb_state_e state; // Estado en el que se encuentra el marcador
SDL_Rect rect; // Posición del marcador
int waitTime; // Tiempo de espera para mostrar el marcador
// Resetea el tiempo de aparición del marcador
void reset();
public:
// Constructor
ScoreBoard(SDL_Renderer *renderer, Asset *asset, Input *input, board_t *board);
// Destructor
~ScoreBoard();
// Dibuja el marcador en la textura
void fillTexture();
// Pinta el objeto en pantalla
void render();
// Actualiza las variables del objeto
void update();
// Recarga la textura
void reLoadTexture();
// Devuelve el rectangulo con la posición del marcador
SDL_Rect getRect();
};
#endif