Files
coffee_crisis_arcade_edition/source/smart_sprite.h

50 lines
1.4 KiB
C++

#pragma once
#include <memory> // Para shared_ptr
#include "animated_sprite.h" // Para SpriteAnimated
class Texture;
// Clase SpriteSmart
class SmartSprite : public AnimatedSprite
{
private:
// Variables
bool on_destination_ = false; // Indica si está en el destino
int dest_x_ = 0; // Posicion de destino en el eje X
int dest_y_ = 0; // Posicion de destino en el eje Y
int finished_counter_ = 0; // Contador para deshabilitarlo
bool finished_ = false; // Indica si ya ha terminado
bool enabled_ = false; // Indica si el objeto está habilitado
// Comprueba si ha terminado
void checkFinished();
// Comprueba el movimiento
void checkMove();
public:
// Constructor
explicit SmartSprite(std::shared_ptr<Texture> texture)
: AnimatedSprite(texture) {}
// Destructor
~SmartSprite() override = default;
// Actualiza la posición y comprueba si ha llegado a su destino
void update() override;
// Dibuja el sprite
void render() override;
// Getters
int getDestX() const { return dest_x_; }
int getDestY() const { return dest_y_; }
bool isOnDestination() const { return on_destination_; }
bool hasFinished() const { return finished_; }
// Setters
void setFinishedCounter(int value) { finished_counter_ = value; }
void setDestX(int x) { dest_x_ = x; }
void setDestY(int y) { dest_y_ = y; }
void setEnabled(bool value) { enabled_ = value; }
};