#pragma once
#include "ifdefs.h"
#include "sprite.h"

#ifndef MOVINGSPRITE_H
#define MOVINGSPRITE_H

// Clase MovingSprite. Añade posicion y velocidad en punto flotante
class MovingSprite : public Sprite
{
public:
    // Constructor
    MovingSprite();

    // Destructor
    ~MovingSprite();

    // Iniciador
    void init(float x, float y, int w, int h, float velx, float vely, float accelx, float accely, LTexture *texture, SDL_Renderer *renderer);

    // Mueve el sprite
    void move();

    // Muestra el sprite por pantalla
    void render();

    // Obten el valor de la variable
    float getPosX();
    
    // Obten el valor de la variable
    float getPosY();
    
    // Obten el valor de la variable
    float getVelX();
    
    // Obten el valor de la variable
    float getVelY();

    // Obten el valor de la variable
    float getAccelX();
    
    // Obten el valor de la variable
    float getAccelY();
    
    // Establece el valor de la variable
    void setPosX(float x);
    
    // Establece el valor de la variable
    void setPosY(float y);

    // Establece el valor de la variable
    void setVelX(float x);
    
    // Establece el valor de la variable
    void setVelY(float y);

    // Establece el valor de la variable
    void setAccelX(float x);
    
    // Establece el valor de la variable
    void setAccelY(float y);

private:
    // Posición
    float mPosX;
    float mPosY;

    // Velocidad
    float mVelX;
    float mVelY;

    // Aceleración
    float mAccelX;
    float mAccelY;
};

#endif
