37 lines
1.6 KiB
C++
37 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
#include "core/rendering/animatedsprite.h" // for AnimatedSprite
|
|
class Texture;
|
|
|
|
// Clase SmartSprite
|
|
class SmartSprite : public AnimatedSprite {
|
|
public:
|
|
SmartSprite(Texture *texture, SDL_Renderer *renderer); // Constructor
|
|
|
|
void init(); // Inicializa el objeto
|
|
void update() override; // Actualiza la posición y comprueba si ha llegado a su destino
|
|
void render() override; // Pinta el objeto en pantalla
|
|
|
|
[[nodiscard]] auto getEnabledCounter() const -> int; // Obtiene 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); // Establece el valor de la variable
|
|
[[nodiscard]] auto getDestX() const -> int; // Obtiene el valor de la variable
|
|
[[nodiscard]] auto getDestY() const -> int; // Obtiene el valor de la variable
|
|
[[nodiscard]] auto isOnDestination() const -> bool; // Obtiene el valor de la variable
|
|
[[nodiscard]] auto hasFinished() const -> bool; // Obtiene el valor de la variable
|
|
|
|
private:
|
|
// Variables
|
|
bool on_destination_; // Indica si está en el destino
|
|
int dest_x_; // Posicion de destino en el eje X
|
|
int dest_y_; // Posicion de destino en el eje Y
|
|
int enabled_counter_; // Contador para deshabilitarlo
|
|
bool finished_; // Indica si ya ha terminado
|
|
|
|
void checkMove(); // Comprueba el movimiento
|
|
void checkFinished(); // Comprueba si ha terminado
|
|
};
|