#pragma once #include "animated_sprite.h" // for AnimatedSprite class Texture; // Clase SmartSprite class SmartSprite : public AnimatedSprite { private: // Variables bool enabled; // Indica si esta habilitado bool onDestination; // Indica si está en el destino int destX; // Posicion de destino en el eje X int destY; // Posicion de destino en el eje Y int enabledCounter; // Contador para deshabilitarlo bool finished; // Indica si ya ha terminado // Comprueba el movimiento void checkMove(); // Comprueba si ha terminado void checkFinished(); public: // Constructor SmartSprite(Texture *texture); // Inicializa el objeto void init(); // Actualiza la posición y comprueba si ha llegado a su destino void update(); // Pinta el objeto en pantalla void render(); // Obtiene el valor de la variable bool isEnabled(); // Establece el valor de la variable void setEnabled(bool enabled); // Obtiene el valor de la variable int getEnabledCounter(); // Establece el valor de la variable void setEnabledCounter(int value); // Establece el valor de la variable void setDestX(int x); // Establece el valor de la variable void setDestY(int y); // Obtiene el valor de la variable int getDestX(); // Obtiene el valor de la variable int getDestY(); // Obtiene el valor de la variable bool isOnDestination(); // Obtiene el valor de la variable bool hasFinished(); };