Trabajando en la INTRO

This commit is contained in:
2022-09-27 22:39:27 +02:00
parent 10882780e5
commit 8b2459dc35
9 changed files with 601 additions and 613 deletions

View File

@@ -4,19 +4,10 @@
// Constructor
Writer::Writer(Text *text)
{
// Copia los punteros
mText = text;
init();
}
// Destructor
Writer::~Writer()
{
mText = nullptr;
}
// Inicializador
void Writer::init()
{
// Inicializa variables
mPosX = 0;
mPosY = 0;
mKerning = 0;
@@ -28,8 +19,61 @@ void Writer::init()
mCompleted = false;
mEnabled = false;
mEnabledTimer = 0;
mId = -1;
mIntroEvents = nullptr;
mId = 0;
finished = false;
}
// Destructor
Writer::~Writer()
{
}
// Actualiza el objeto
void Writer::update()
{
if (mEnabled)
{
if (!mCompleted)
{ // No completado
if (mTimer > 0)
{
mTimer--;
}
else if (mTimer == 0)
{
mIndex++;
mTimer = mSpeed;
}
if (mIndex == mLenght)
{
mCompleted = true;
}
}
if (mCompleted)
{ // Completado
if (mEnabledTimer > 0)
{
mEnabledTimer--;
}
else if (mEnabledTimer == 0)
{
mEnabled = false;
finished = true;
}
}
}
}
// Dibuja el objeto en pantalla
void Writer::render()
{
if (mEnabled)
{
mText->write(mPosX, mPosY, mCaption, mKerning, mIndex);
}
}
// Establece el valor de la variable
@@ -58,7 +102,7 @@ void Writer::setCaption(std::string text)
}
// Establece el valor de la variable
void Writer::setSpeed(Uint16 value)
void Writer::setSpeed(int value)
{
mSpeed = value;
mTimer = value;
@@ -77,66 +121,17 @@ bool Writer::IsEnabled()
}
// Establece el valor de la variable
void Writer::setEnabledTimer(Uint16 value)
void Writer::setEnabledTimer(int value)
{
mEnabledTimer = value;
}
// Obtiene el valor de la variable
Uint16 Writer::getEnabledTimer()
int Writer::getEnabledTimer()
{
return mEnabledTimer;
}
// Actualiza el objeto
void Writer::update()
{
if (mEnabled)
{
if (mCompleted == false)
{
if (mTimer > 0)
{
mTimer--;
}
if (mTimer == 0)
{
mIndex++;
mTimer = mSpeed;
}
if (mIndex == mLenght)
{
mCompleted = true;
}
}
if (mCompleted)
{
if (mEnabledTimer > 0)
{
mEnabledTimer--;
}
else if (mEnabledTimer == 0)
{
if (mId < 0)
{
mEnabled = false;
}
else
{
mIntroEvents[mId] = EVENT_COMPLETED;
}
}
}
}
}
// Dibuja el objeto en pantalla
void Writer::render()
{
if (mEnabled)
mText->write(mPosX, mPosY, mCaption, mKerning, mIndex);
}
// Centra la cadena de texto a un punto X
void Writer::center(int x)
{
@@ -149,8 +144,8 @@ void Writer::setId(int id)
mId = id;
}
// Establece el valor de la variable
void Writer::setIntroEvents(Uint8 *value)
// Obtiene el valor de la variable
bool Writer::hasFinished()
{
mIntroEvents = value;
}
return finished;
}