updated smartsprite.cpp
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
// Constructor
|
||||
SmartSprite::SmartSprite()
|
||||
{
|
||||
AnimatedSprite::init(nullptr, nullptr);
|
||||
init(nullptr, nullptr);
|
||||
}
|
||||
|
||||
@@ -32,7 +33,7 @@ void SmartSprite::init(LTexture *texture, SDL_Renderer *renderer)
|
||||
setSpriteClip(0, 0, 0, 0);
|
||||
|
||||
setEnabled(false);
|
||||
setEnabledTimer(0);
|
||||
setCounter(0);
|
||||
|
||||
mIsOnDestination = false;
|
||||
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
|
||||
mId = -1;
|
||||
|
||||
mIntroEvents = nullptr;
|
||||
}
|
||||
|
||||
// Pone a cero los elementos del objeto
|
||||
void SmartSprite::erase()
|
||||
void SmartSprite::reset()
|
||||
{
|
||||
init(nullptr, nullptr);
|
||||
}
|
||||
@@ -62,16 +61,22 @@ void SmartSprite::setEnabled(bool state)
|
||||
mEnabled = state;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
Uint16 SmartSprite::getEnabledTimer()
|
||||
// Obtiene el valor del contador
|
||||
Uint16 SmartSprite::getCounter()
|
||||
{
|
||||
return mEnabledTimer;
|
||||
return mCounter;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void SmartSprite::setEnabledTimer(Uint16 time)
|
||||
// Establece el valor del contador
|
||||
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
|
||||
@@ -103,7 +108,8 @@ bool SmartSprite::update()
|
||||
{
|
||||
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
|
||||
if ((getAccelX() > 0) || ((getAccelX() == 0) && (getVelX() > 0)))
|
||||
@@ -178,12 +184,12 @@ bool SmartSprite::update()
|
||||
if (mIsOnDestination)
|
||||
{
|
||||
// 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
|
||||
else if (mEnabledTimer == 0)
|
||||
else if (mCounter == 0)
|
||||
{
|
||||
if (mId < 0)
|
||||
{
|
||||
@@ -191,7 +197,7 @@ bool SmartSprite::update()
|
||||
}
|
||||
else
|
||||
{
|
||||
mIntroEvents[mId] = EVENT_COMPLETED;
|
||||
//return true;;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -219,10 +225,4 @@ void SmartSprite::render()
|
||||
void SmartSprite::setId(int id)
|
||||
{
|
||||
mId = id;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void SmartSprite::setIntroEvents(Uint8 *value)
|
||||
{
|
||||
mIntroEvents = value;
|
||||
}
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
void init(LTexture *texture, SDL_Renderer *renderer);
|
||||
|
||||
// Pone a cero los elementos del objeto
|
||||
void erase();
|
||||
void reset();
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
bool isEnabled();
|
||||
@@ -27,11 +27,14 @@ public:
|
||||
// Establece el valor de la variable
|
||||
void setEnabled(bool state);
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
Uint16 getEnabledTimer();
|
||||
// Obtiene el valor del contador
|
||||
Uint16 getCounter();
|
||||
|
||||
// Establece el valor de la variable
|
||||
void setEnabledTimer(Uint16 time);
|
||||
// Establece el valor del contador
|
||||
void setCounter(Uint16 time);
|
||||
|
||||
// Inicializa el valor del contador
|
||||
void resetCounter(Uint16 time);
|
||||
|
||||
// Establece el valor de la variable
|
||||
void setDestX(int value);
|
||||
@@ -45,40 +48,26 @@ public:
|
||||
// Obtiene el valor de la variable
|
||||
int getDestY();
|
||||
|
||||
// Actualiza la posición y comprueba si ha llegado a su destino
|
||||
bool update();
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
bool isOnDestination();
|
||||
|
||||
// Pinta el objeto en pantalla
|
||||
void render();
|
||||
|
||||
// Establece el valor de la variable
|
||||
void setId(int id);
|
||||
|
||||
// Establece el valor de la variable
|
||||
void setIntroEvents(Uint8 *value);
|
||||
// Actualiza la posición y comprueba si ha llegado a su destino
|
||||
bool update();
|
||||
|
||||
// Pinta el objeto en pantalla
|
||||
void render();
|
||||
|
||||
private:
|
||||
// Indica si esta habilitado
|
||||
bool mEnabled;
|
||||
|
||||
// Contador
|
||||
Uint16 mEnabledTimer;
|
||||
|
||||
// Indica si está en el destino
|
||||
bool mIsOnDestination;
|
||||
|
||||
// Posicion de destino
|
||||
int mDestX;
|
||||
int mDestY;
|
||||
|
||||
// Identificador
|
||||
int mId;
|
||||
|
||||
// Dirección del array de eventos donde notificar el estado
|
||||
Uint8 *mIntroEvents;
|
||||
bool mEnabled; // Indica si esta habilitado
|
||||
bool mIsOnDestination; // Indica si está en el destino
|
||||
int mDestX; // Posicion de destino en el eje X
|
||||
int mDestY; // Posicion de destino en el eje Y
|
||||
int mId; // Identificador
|
||||
Uint16 mCounter; // Contador
|
||||
Uint16 mCounterIni; // Valor inicial del contador
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user