#include "const.h"
#include "spritemoving.h"
#include <iostream>

//Constructor
SpriteMoving::SpriteMoving()
{
	init(0, 0, 0, 0, 0, 0, NULL, NULL);
}

//Iniciador
void SpriteMoving::init(float x, float y, int w, int h, float velx, float vely, LTexture *texture, SDL_Renderer *renderer)
{
	//Establece el alto y el ancho del sprite
	setWidth(w);
	setHeight(h);

	//Establece la posición X,Y del sprite
	setPosX(x);
	setPosY(y);

	//Establece la velocidad X,Y del sprite
	setVelX(velx);
	setVelY(vely);

	//Establece la textura donde están los gráficos para el sprite
	setTexture(*texture);

	//Establece el renderizador
	setRenderer(*renderer);

	//Establece el rectangulo de donde coger la imagen
	setSpriteClip(0, 0, getWidth(), getHeight());
}

//Mueve el sprite
void SpriteMoving::move()
{
	mPosX += mVelX;
	mPosY += mVelY;
}

//Muestra el sprite por pantalla
void SpriteMoving::render()
{
	mTexture->render(mRenderer, (int)mPosX, (int)mPosY, &mSpriteClip);
}

//Establece el valor de la variable
float SpriteMoving::getPosX()
{
	return mPosX;
}

//Establece el valor de la variable
float SpriteMoving::getPosY()
{
	return mPosY;
}

//Establece el valor de la variable
float SpriteMoving::getVelX()
{
	return mVelX;
}

//Establece el valor de la variable
float SpriteMoving::getVelY()
{
	return mVelY;
}

//Establece el valor de la variable
void SpriteMoving::setPosX(float x)
{
	mPosX = x;
}

//Establece el valor de la variable
void SpriteMoving::setPosY(float y)
{
	mPosY = y;
}

//Establece el valor de la variable
void SpriteMoving::setVelX(float x)
{
	mVelX = x;
}

//Establece el valor de la variable
void SpriteMoving::setVelY(float y)
{
	mVelY = y;
}