updated smartsprite.cpp
This commit is contained in:
@@ -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;
|
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user