#include "const.h" #include "text2.h" // Constructor Text2::Text2() { init(nullptr, nullptr, 0, 0); } // Destructor Text2::~Text2() { init(nullptr, nullptr, 0, 0); } // Inicializador void Text2::init(LTexture *texture, SDL_Renderer *renderer, Uint8 type, Uint8 size) { Text::init(texture, renderer, type, size); mPosX = 0; mPosY = 0; mKerning = 0; mCaption = ""; mWrittingSpeed = 0; mWrittingTimer = 0; mIndex = 0; mLenght = 0; mWrittingCompleted = false; mEnabled = false; mEnabledTimer = 0; mId = -1; mIntroEvents = nullptr; } // Establece el valor de la variable void Text2::setPosX(int value) { mPosX = value; } // Establece el valor de la variable void Text2::setPosY(int value) { mPosY = value; } // Establece el valor de la variable void Text2::setKerning(int value) { mKerning = value; } // Establece el valor de la variable void Text2::setCaption(std::string text) { mCaption = text; mLenght = text.length(); } // Establece el valor de la variable void Text2::setWrittingSpeed(Uint16 value) { mWrittingSpeed = value; mWrittingTimer = value; } // Establece el valor de la variable void Text2::setEnabled(bool value) { mEnabled = value; } // Obtiene el valor de la variable bool Text2::IsEnabled() { return mEnabled; } // Establece el valor de la variable void Text2::setEnabledTimer(Uint16 value) { mEnabledTimer = value; } // Obtiene el valor de la variable Uint16 Text2::getEnabledTimer() { return mEnabledTimer; } // Actualiza el objeto void Text2::update() { if (mEnabled) { if (mWrittingCompleted == false) { if (mWrittingTimer > 0) { --mWrittingTimer; } if (mWrittingTimer == 0) { ++mIndex; mWrittingTimer = mWrittingSpeed; } if (mIndex == mLenght) { mWrittingCompleted = true; } } if (mWrittingCompleted) { if (mEnabledTimer > 0) { --mEnabledTimer; } else if (mEnabledTimer == 0) { if (mId < 0) { mEnabled = false; } else { mIntroEvents[mId] = EVENT_COMPLETED; } } } } } // Dibuja el objeto en pantalla void Text2::render() { if (mEnabled) { Text::write(mPosX, mPosY, mCaption, mKerning, mIndex); } } // Centra la cadena de texto a un punto X void Text2::center(int x) { setPosX(x - (lenght(mCaption, mKerning) / 2)); } // Establece el valor de la variable void Text2::setId(int id) { mId = id; } // Establece el valor de la variable void Text2::setIntroEvents(Uint8 *value) { mIntroEvents = value; }