83 lines
2.3 KiB
C++
83 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include <SDL2/SDL.h>
|
|
#include "common/animatedsprite.h"
|
|
#include "common/asset.h"
|
|
#include "common/resource.h"
|
|
#include "common/text.h"
|
|
#include "common/utils.h"
|
|
#include "const.h"
|
|
#include <string>
|
|
|
|
#ifndef SCOREBOARD_H
|
|
#define SCOREBOARD_H
|
|
|
|
struct board_t
|
|
{
|
|
int items; // Lleva la cuenta de los objetos recogidos
|
|
int lives; // Lleva la cuenta de ls vidas restantes del jugador
|
|
int rooms; // Lleva la cuenta de las habitaciones visitadas
|
|
bool music; // Indica si ha de sonar la musica durante el juego
|
|
color_t color; // Color para escribir el texto del marcador
|
|
Uint32 iniClock;
|
|
};
|
|
|
|
class ScoreBoard
|
|
{
|
|
private:
|
|
struct clock_t
|
|
{
|
|
int hours;
|
|
int minutes;
|
|
int seconds;
|
|
std::string separator;
|
|
};
|
|
|
|
// Objetos y punteros
|
|
Texture *playerTexture; // Textura con los graficos para las vidas
|
|
AnimatedSprite *sprite; // Sprite para mostrar las vidas en el marcador
|
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
|
Resource *resource; // Objeto con los recursos
|
|
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
|
Text *text; // Objeto para escribir texto
|
|
Texture *itemTexture; // Textura con los graficos para las vidas
|
|
board_t *board; // Contiene las variables a mostrar en el marcador
|
|
options_t *options; // Puntero a las opciones del juego
|
|
|
|
// Variables
|
|
std::vector<color_t> color; // Vector con los colores del objeto
|
|
int counter; // Contador interno
|
|
int colorChangeSpeed; // Cuanto mas alto, mas tarda en cambiar de color
|
|
bool paused; // Indica si el marcador esta en modo pausa
|
|
Uint32 timePaused; // Milisegundos que ha estado el marcador en pausa
|
|
Uint32 totalTimePaused; // Tiempo acumulado en pausa
|
|
clock_t clock; // Contiene las horas, minutos y segundos transcurridos desde el inicio de la partida
|
|
|
|
// Obtiene el tiempo transcurrido de partida
|
|
clock_t getTime();
|
|
|
|
public:
|
|
// Constructor
|
|
ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, options_t *options, board_t *board);
|
|
|
|
// Destructor
|
|
~ScoreBoard();
|
|
|
|
// Pinta el objeto en pantalla
|
|
void render();
|
|
|
|
// Actualiza las variables del objeto
|
|
void update();
|
|
|
|
// Recarga la textura
|
|
void reLoadTexture();
|
|
|
|
// Pone el marcador en modo pausa
|
|
void pause();
|
|
|
|
// Quita el modo pausa del marcador
|
|
void resume();
|
|
};
|
|
|
|
#endif
|