Actualizada la librería sprite.h

This commit is contained in:
2022-08-08 19:25:03 +02:00
parent a180f1db46
commit c5acab7828
7 changed files with 280 additions and 55 deletions

View File

@@ -1,20 +1,7 @@
#include "sprite.h"
// Constructor
Sprite::Sprite()
{
init(nullptr, nullptr);
}
// Destructor
Sprite::~Sprite()
{
mTexture = nullptr;
mRenderer = nullptr;
}
// Inicializador
/*void Sprite::init(LTexture *texture, SDL_Renderer *renderer, int x, int y, Uint16 w, Uint16 h)
Sprite::Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer)
{
// Establece el alto y el ancho del sprite
setWidth(w);
@@ -31,19 +18,21 @@ Sprite::~Sprite()
setTexture(texture);
// Establece el rectangulo de donde coger la imagen
setSpriteClip(0, 0, w, h);
}*/
setSpriteClip(x, y, w, h);
// Inicializador
void Sprite::init(LTexture *texture, SDL_Renderer *renderer, SDL_Rect rect)
// Inicializa variables
setEnabled(true);
}
Sprite::Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
{
// Establece el alto y el ancho del sprite
mWidth = rect.w;
mHeight = rect.h;
setWidth(rect.w);
setHeight(rect.h);
// Establece la posición X,Y del sprite
mPosX = rect.x;
mPosY = rect.y;
setPosX(rect.x);
setPosY(rect.y);
// Establece el puntero al renderizador de la ventana
setRenderer(renderer);
@@ -53,12 +42,25 @@ void Sprite::init(LTexture *texture, SDL_Renderer *renderer, SDL_Rect rect)
// Establece el rectangulo de donde coger la imagen
setSpriteClip(rect);
// Inicializa variables
setEnabled(true);
}
// Destructor
Sprite::~Sprite()
{
mTexture = nullptr;
mRenderer = nullptr;
}
// Muestra el sprite por pantalla
void Sprite::render()
{
mTexture->render(mRenderer, mPosX, mPosY, &mSpriteClip);
if (mEnabled)
{
mTexture->render(mRenderer, mPosX, mPosY, &mSpriteClip);
}
}
// Obten el valor de la variable
@@ -74,13 +76,13 @@ int Sprite::getPosY()
}
// Obten el valor de la variable
Uint16 Sprite::getWidth()
int Sprite::getWidth()
{
return mWidth;
}
// Obten el valor de la variable
Uint16 Sprite::getHeight()
int Sprite::getHeight()
{
return mHeight;
}
@@ -98,13 +100,13 @@ void Sprite::setPosY(int y)
}
// Establece el valor de la variable
void Sprite::setWidth(Uint16 w)
void Sprite::setWidth(int w)
{
mWidth = w;
}
// Establece el valor de la variable
void Sprite::setHeight(Uint16 h)
void Sprite::setHeight(int h)
{
mHeight = h;
}
@@ -116,7 +118,13 @@ SDL_Rect Sprite::getSpriteClip()
}
// Establece el valor de la variable
void Sprite::setSpriteClip(int x, int y, Uint16 w, Uint16 h)
void Sprite::setSpriteClip(SDL_Rect rect)
{
mSpriteClip = rect;
}
// Establece el valor de la variable
void Sprite::setSpriteClip(int x, int y, int w, int h)
{
mSpriteClip.x = x;
mSpriteClip.y = y;
@@ -124,12 +132,6 @@ void Sprite::setSpriteClip(int x, int y, Uint16 w, Uint16 h)
mSpriteClip.h = h;
}
// Establece el valor de la variable
void Sprite::setSpriteClip(SDL_Rect rect)
{
mSpriteClip = rect;
}
// Obten el valor de la variable
LTexture *Sprite::getTexture()
{
@@ -146,4 +148,23 @@ void Sprite::setTexture(LTexture *texture)
void Sprite::setRenderer(SDL_Renderer *renderer)
{
mRenderer = renderer;
}
// Establece el valor de la variable
void Sprite::setEnabled(bool value)
{
mEnabled = value;
}
// Comprueba si el objeto está habilitado
bool Sprite::isEnabled()
{
return mEnabled;
}
// Devuelve el rectangulo donde está el sprite
SDL_Rect Sprite::getRect()
{
SDL_Rect rect = {getPosX(), getPosY(), getWidth(), getHeight()};
return rect;
}