#pragma once #include "sprite.h" #ifndef TEXT_H #define TEXT_H // Clase texto. Pinta texto en pantalla a partir de un bitmap class Text { public: // Constructor Text(); // Destructor ~Text(); // Inicializador void init(LTexture *texture, SDL_Renderer *renderer, Uint8 height); /** * \brief Escribe texto en pantalla * * \param x Posición en el eje X donde empezar a escribir el texto * \param y Posición en el eje Y donde empezar a escribir el texto * \param string Texto para escribir * \param kerning Espacio de separación entre letras * \param lenght Longitud de la cadena de texto a escribir */ void write(int x, int y, std::string text, Sint8 kerning = 0, Uint8 lenght = 0); // Escribe el texto con colores void writeColored(int x, int y, std::string text, Uint8 R, Uint8 G, Uint8 B); // Escribe el texto centrado en un punto x y con kerning void writeCentered(int x, int y, std::string text, int kerning); // Obtiene la longitud en pixels de una cadena Uint16 lenght(std::string text, int kerning); // Obtiene el valor de la variable Uint8 getType(); // Establece el valor de la variable void setType(Uint8 type); // Obtiene el valor de la variable Uint8 getHeight(); // Establece el valor de la variable void setHeight(Uint8 size); private: Sprite *mSprite; // Objeto con los graficos para el texto SDL_Rect mOffset[255]; // Vector con las posiciones y ancho de cada letra Uint8 mHeight; // Altura del texto }; #endif