46 lines
2.3 KiB
C++
46 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include <string> // for string, basic_string
|
|
class Text;
|
|
|
|
// Clase Writer. Pinta texto en pantalla letra a letra a partir de una cadena y un bitmap
|
|
class Writer {
|
|
public:
|
|
explicit Writer(Text *text); // Constructor
|
|
|
|
void update(); // Actualiza el objeto
|
|
void render(); // Dibuja el objeto en pantalla
|
|
|
|
void setPosX(int value); // Establece el valor de la variable
|
|
void setPosY(int value); // Establece el valor de la variable
|
|
void setKerning(int value); // Establece el valor de la variable
|
|
void setCaption(const std::string &text); // Establece el valor de la variable
|
|
void setSpeed(int value); // Establece el valor de la variable
|
|
void setEnabled(bool value); // Establece el valor de la variable
|
|
[[nodiscard]] auto isEnabled() const -> bool; // Obtiene el valor de la variable
|
|
|
|
void setEnabledCounter(int time); // Establece el valor de la variable
|
|
[[nodiscard]] auto getEnabledCounter() const -> int; // Obtiene el valor de la variable
|
|
|
|
void center(int x); // Centra la cadena de texto a un punto X
|
|
[[nodiscard]] auto hasFinished() const -> bool; // Obtiene el valor de la variable
|
|
|
|
private:
|
|
// Objetos y punteros
|
|
Text *text_; // Objeto encargado de escribir el texto
|
|
|
|
// Variables
|
|
int pos_x_{0}; // Posicion en el eje X donde empezar a escribir el texto
|
|
int pos_y_{0}; // Posicion en el eje Y donde empezar a escribir el texto
|
|
int kerning_{0}; // Kerning del texto, es decir, espaciado entre caracteres
|
|
std::string caption_; // El texto para escribir
|
|
int speed_{0}; // Velocidad de escritura
|
|
int writing_counter_{0}; // Temporizador de escritura para cada caracter
|
|
int index_{0}; // Posición del texto que se está escribiendo
|
|
int length_{0}; // Longitud de la cadena a escribir
|
|
bool completed_{false}; // Indica si se ha escrito todo el texto
|
|
bool enabled_{false}; // Indica si el objeto está habilitado
|
|
int enabled_counter_{0}; // Temporizador para deshabilitar el objeto
|
|
bool finished_{false}; // Indica si ya ha terminado
|
|
};
|