#pragma once #include #include "common/asset.h" #include "common/input.h" #include "common/jail_audio.h" #include "common/menu.h" #include "common/movingsprite.h" #include "common/screen.h" #include "common/smartsprite.h" #include "common/sprite.h" #include "common/text.h" #include "common/utils.h" #include "common/writer.h" #include "const.h" #ifndef SCOREBOARD_H #define SCOREBOARD_H // Clase Scoreboard class Scoreboard { private: // Objetos y punteros SDL_Renderer *renderer; // El renderizador de la ventana Screen *screen; // Objeto encargado de dibujar en pantalla Asset *asset; // Objeto que gestiona todos los ficheros de recursos Lang *lang; // Objeto para gestionar los textos en diferentes idiomas Texture *gamePowerMeterTexture; // Textura con el marcador de poder de la fase Sprite *powerMeterSprite; // Sprite para el medidor de poder de la fase Text *textScoreBoard; // Fuente para el marcador del juego // Variables struct options_t *options; // Variable con todas las variables de las opciones del programa int stage; // Numero de fase actual int score1; // Puntuación del jugador 1 int score2; // Puntuación del jugador 2 int mult1; // Multiplicador del jugador 1 int mult2; // MUltiplicador del jugador 2 int hiScore; // Mäxima puntuación int power; // Poder actual de la fase std::string hiScoreName; // Nombre del jugador con la máxima puntuación color_t color; // Color del marcador public: // Constructor Scoreboard(SDL_Renderer *renderer, Screen *screen, Asset *asset, Lang *lang, options_t *options); // Destructor ~Scoreboard(); // Pinta el marcador void render(); void setScore1(int score); void setScore2(int score); void setMult1(int mult); void setMult2(int mult); void setStage(int stage); void setHiScore(int hiScore); void setPower(int power); void setHiScoreName(std::string name); void setColor(color_t color); private: // Transforma un valor numérico en una cadena de 6 cifras std::string updateScoreText(Uint32 num); }; #endif