updated smartsprite.cpp

This commit is contained in:
2021-02-18 21:26:59 +01:00
parent c3e545d156
commit 6ab8f39b92
2 changed files with 41 additions and 52 deletions

View File

@@ -4,6 +4,7 @@
// Constructor // Constructor
SmartSprite::SmartSprite() SmartSprite::SmartSprite()
{ {
AnimatedSprite::init(nullptr, nullptr);
init(nullptr, nullptr); init(nullptr, nullptr);
} }
@@ -32,7 +33,7 @@ void SmartSprite::init(LTexture *texture, SDL_Renderer *renderer)
setSpriteClip(0, 0, 0, 0); setSpriteClip(0, 0, 0, 0);
setEnabled(false); setEnabled(false);
setEnabledTimer(0); setCounter(0);
mIsOnDestination = false; mIsOnDestination = false;
mDestX = 0; mDestX = 0;
@@ -40,12 +41,10 @@ void SmartSprite::init(LTexture *texture, SDL_Renderer *renderer)
// El Id siempre es >=0, por lo tanto si no se le asigna Id se queda en negativo // El Id siempre es >=0, por lo tanto si no se le asigna Id se queda en negativo
mId = -1; mId = -1;
mIntroEvents = nullptr;
} }
// Pone a cero los elementos del objeto // Pone a cero los elementos del objeto
void SmartSprite::erase() void SmartSprite::reset()
{ {
init(nullptr, nullptr); init(nullptr, nullptr);
} }
@@ -62,16 +61,22 @@ void SmartSprite::setEnabled(bool state)
mEnabled = state; mEnabled = state;
} }
// Obtiene el valor de la variable // Obtiene el valor del contador
Uint16 SmartSprite::getEnabledTimer() Uint16 SmartSprite::getCounter()
{ {
return mEnabledTimer; return mCounter;
} }
// Establece el valor de la variable // Establece el valor del contador
void SmartSprite::setEnabledTimer(Uint16 time) void SmartSprite::setCounter(Uint16 time)
{ {
mEnabledTimer = time; mCounter = time;
}
// Establece el valor del contador
void SmartSprite::resetCounter(Uint16 time)
{
mCounter = mCounterIni;
} }
// Establece el valor de la variable // Establece el valor de la variable
@@ -103,7 +108,8 @@ bool SmartSprite::update()
{ {
if (mEnabled) if (mEnabled)
{ {
move(); // Actualiza las variables de posición, velocidad y animación
AnimatedSprite::update();
// Comprueba si se desplaza en el eje X hacia la derecha // Comprueba si se desplaza en el eje X hacia la derecha
if ((getAccelX() > 0) || ((getAccelX() == 0) && (getVelX() > 0))) if ((getAccelX() > 0) || ((getAccelX() == 0) && (getVelX() > 0)))
@@ -178,12 +184,12 @@ bool SmartSprite::update()
if (mIsOnDestination) if (mIsOnDestination)
{ {
// Si el contador es mayor que cero, lo decrementa // Si el contador es mayor que cero, lo decrementa
if (mEnabledTimer > 0) if (mCounter > 0)
{ {
--mEnabledTimer; mCounter--;
} }
// Si ha llegado a cero, deshabilita el objeto o manda el aviso en función de si tiene Id // Si ha llegado a cero, deshabilita el objeto o manda el aviso en función de si tiene Id
else if (mEnabledTimer == 0) else if (mCounter == 0)
{ {
if (mId < 0) if (mId < 0)
{ {
@@ -191,7 +197,7 @@ bool SmartSprite::update()
} }
else else
{ {
mIntroEvents[mId] = EVENT_COMPLETED; //return true;;
} }
} }
} }
@@ -219,10 +225,4 @@ void SmartSprite::render()
void SmartSprite::setId(int id) void SmartSprite::setId(int id)
{ {
mId = id; mId = id;
}
// Establece el valor de la variable
void SmartSprite::setIntroEvents(Uint8 *value)
{
mIntroEvents = value;
} }

View File

@@ -19,7 +19,7 @@ public:
void init(LTexture *texture, SDL_Renderer *renderer); void init(LTexture *texture, SDL_Renderer *renderer);
// Pone a cero los elementos del objeto // Pone a cero los elementos del objeto
void erase(); void reset();
// Obtiene el valor de la variable // Obtiene el valor de la variable
bool isEnabled(); bool isEnabled();
@@ -27,11 +27,14 @@ public:
// Establece el valor de la variable // Establece el valor de la variable
void setEnabled(bool state); void setEnabled(bool state);
// Obtiene el valor de la variable // Obtiene el valor del contador
Uint16 getEnabledTimer(); Uint16 getCounter();
// Establece el valor de la variable // Establece el valor del contador
void setEnabledTimer(Uint16 time); void setCounter(Uint16 time);
// Inicializa el valor del contador
void resetCounter(Uint16 time);
// Establece el valor de la variable // Establece el valor de la variable
void setDestX(int value); void setDestX(int value);
@@ -45,40 +48,26 @@ public:
// Obtiene el valor de la variable // Obtiene el valor de la variable
int getDestY(); int getDestY();
// Actualiza la posición y comprueba si ha llegado a su destino
bool update();
// Obtiene el valor de la variable // Obtiene el valor de la variable
bool isOnDestination(); bool isOnDestination();
// Pinta el objeto en pantalla
void render();
// Establece el valor de la variable // Establece el valor de la variable
void setId(int id); void setId(int id);
// Establece el valor de la variable // Actualiza la posición y comprueba si ha llegado a su destino
void setIntroEvents(Uint8 *value); bool update();
// Pinta el objeto en pantalla
void render();
private: private:
// Indica si esta habilitado bool mEnabled; // Indica si esta habilitado
bool mEnabled; bool mIsOnDestination; // Indica si está en el destino
int mDestX; // Posicion de destino en el eje X
// Contador int mDestY; // Posicion de destino en el eje Y
Uint16 mEnabledTimer; int mId; // Identificador
Uint16 mCounter; // Contador
// Indica si está en el destino Uint16 mCounterIni; // Valor inicial del contador
bool mIsOnDestination;
// Posicion de destino
int mDestX;
int mDestY;
// Identificador
int mId;
// Dirección del array de eventos donde notificar el estado
Uint8 *mIntroEvents;
}; };
#endif #endif