#pragma once #include #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 #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