#pragma once #include "utils.h" #include "animatedsprite.h" #ifndef SMARTSPRITE_H #define SMARTSPRITE_H // Clase SmartSprite class SmartSprite : public AnimatedSprite { public: // Constructor SmartSprite(); // Destructor ~SmartSprite(); // Inicializador void init(LTexture *texture, SDL_Renderer *renderer); // Pone a cero los elementos del objeto void erase(); // Obtiene el valor de la variable bool isEnabled(); // Establece el valor de la variable void setEnabled(bool state); // Obtiene el valor de la variable Uint16 getEnabledTimer(); // Establece el valor de la variable void setEnabledTimer(Uint16 time); // Establece el valor de la variable void setDestX(int value); // Establece el valor de la variable void setDestY(int value); // Obtiene el valor de la variable int getDestX(); // 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); 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; }; #endif