#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" #include "lang.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 SDL_Texture *background; // Textura para dibujar el marcador // 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 float mult1; // Multiplicador del jugador 1 float mult2; // MUltiplicador del jugador 2 int hiScore; // Mäxima puntuación float power; // Poder actual de la fase std::string hiScoreName; // Nombre del jugador con la máxima puntuación color_t color; // Color del marcador SDL_Rect rect; // Posición y dimensiones del marcador SDL_Point offsetScoreP1Label; SDL_Point offsetScoreP1; SDL_Point offsetScoreP2Label; SDL_Point offsetScoreP2; SDL_Point offsetMultP1Label; SDL_Point offsetMultP1; SDL_Point offsetMultP2Label; SDL_Point offsetMultP2; SDL_Point offsetHiScoreLabel; SDL_Point offsetHiScore; SDL_Point offsetStage; SDL_Point offsetPowerMeter; 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(float mult); void setMult2(float mult); void setStage(int stage); void setHiScore(int hiScore); void setPower(float power); void setHiScoreName(std::string name); void setColor(color_t color); void setPos(SDL_Rect rect); private: // Transforma un valor numérico en una cadena de 6 cifras std::string updateScoreText(Uint32 num); // Rellena la textura de fondo void fillBackgroundTexture(); }; #endif