forked from jaildesigner-jailgames/coffee_crisis
65 lines
1.5 KiB
C++
65 lines
1.5 KiB
C++
#pragma once
|
|
#include "sprite.h"
|
|
|
|
#ifndef TEXT_H
|
|
#define TEXT_H
|
|
|
|
// Clase texto. Pinta texto en pantalla a partir de un bitmap
|
|
class Text
|
|
{
|
|
private:
|
|
Sprite *mSprite;// Objeto con los graficos para el texto
|
|
|
|
struct Offset
|
|
{
|
|
int x;
|
|
int y;
|
|
Uint8 w;
|
|
};
|
|
Offset mOffset[255];// Vector con las posiciones y ancho de cada letra
|
|
|
|
Uint8 mType;// Indica si el texto es de anchura fija o variable
|
|
Uint8 mSize;// Altura del texto
|
|
|
|
public:
|
|
// Constructor
|
|
Text();
|
|
|
|
// Destructor
|
|
~Text();
|
|
|
|
// Inicializador
|
|
void init(LTexture *texture, SDL_Renderer *renderer, Uint8 type, Uint8 size);
|
|
|
|
// Escribe el texto en pantalla
|
|
void write(int x, int y, std::string text);
|
|
void write(int x, int y, std::string text, int kerning);
|
|
void write(int x, int y, std::string text, int kerning, Uint8 lenght);
|
|
|
|
// Escribe el texto con colores
|
|
void writeColored(int x, int y, std::string text, Uint8 R, Uint8 G, Uint8 B);
|
|
|
|
// Escribe el texto con sombra
|
|
void writeShadowed(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 = 0);
|
|
|
|
// 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 getSize();
|
|
|
|
// Establece el valor de la variable
|
|
void setSize(Uint8 size);
|
|
};
|
|
|
|
#endif
|