#include "writer.h" // Constructor Writer::Writer(std::shared_ptr text) : text_(text) { // Inicializa variables posX_ = 0; posY_ = 0; kerning_ = 0; caption_ = ""; speed_ = 0; writingCounter_ = 0; index_ = 0; lenght_ = 0; completed_ = false; enabled_ = false; enabledCounter_ = 0; finished_ = false; } // Actualiza el objeto void Writer::update() { if (enabled_) { if (!completed_) { // No completado if (writingCounter_ > 0) { writingCounter_--; } else if (writingCounter_ == 0) { index_++; writingCounter_ = speed_; } if (index_ == lenght_) { completed_ = true; } } else { // Completado if (enabledCounter_ > 0) { enabledCounter_--; } else if (enabledCounter_ == 0) { finished_ = true; } } } } // Dibuja el objeto en pantalla void Writer::render() const { if (enabled_) { text_->write(posX_, posY_, caption_, kerning_, index_); } } // Establece el valor de la variable void Writer::setPosX(int value) { posX_ = value; } // Establece el valor de la variable void Writer::setPosY(int value) { posY_ = value; } // Establece el valor de la variable void Writer::setKerning(int value) { kerning_ = value; } // Establece el valor de la variable void Writer::setCaption(std::string text) { caption_ = text; lenght_ = text.length(); } // Establece el valor de la variable void Writer::setSpeed(int value) { speed_ = value; writingCounter_ = value; } // Establece el valor de la variable void Writer::setEnabled(bool value) { enabled_ = value; } // Obtiene el valor de la variable bool Writer::IsEnabled() const { return enabled_; } // Establece el valor de la variable void Writer::setFinishedCounter(int time) { enabledCounter_ = time; } // Centra la cadena de texto a un punto X void Writer::center(int x) { setPosX(x - (text_->lenght(caption_, kerning_) / 2)); } // Obtiene el valor de la variable bool Writer::hasFinished() const { return finished_; }