Actualizadas las clases sprite, movingsprite y animatedsprite

This commit is contained in:
2022-08-29 20:02:46 +02:00
parent 47c57a9f44
commit 9c2140b274
29 changed files with 726 additions and 802 deletions

View File

@@ -3,168 +3,181 @@
// Constructor
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);
setHeight(h);
// Establece la posición X,Y del sprite
setPosX(x);
setPosY(y);
this->x = x;
this->y = y;
// Establece el alto y el ancho del sprite
this->w = w;
this->h = h;
// Establece el puntero al renderizador de la ventana
setRenderer(renderer);
this->renderer = renderer;
// Establece la textura donde están los gráficos para el sprite
setTexture(texture);
this->texture = texture;
// Establece el rectangulo de donde coger la imagen
setSpriteClip(x, y, w, h);
spriteClip = {x, y, w, h};
// Inicializa variables
setEnabled(true);
enabled = true;
}
Sprite::Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
{
// Establece el alto y el ancho del sprite
setWidth(rect.w);
setHeight(rect.h);
// Establece la posición X,Y del sprite
setPosX(rect.x);
setPosY(rect.y);
x = rect.x;
y = rect.y;
// Establece el alto y el ancho del sprite
w = rect.w;
h = rect.h;
// Establece el puntero al renderizador de la ventana
setRenderer(renderer);
this->renderer = renderer;
// Establece la textura donde están los gráficos para el sprite
setTexture(texture);
this->texture = texture;
// Establece el rectangulo de donde coger la imagen
setSpriteClip(rect);
spriteClip = {x, y, w, h};
// Inicializa variables
setEnabled(true);
enabled = true;
}
// Destructor
Sprite::~Sprite()
{
mTexture = nullptr;
mRenderer = nullptr;
texture = nullptr;
renderer = nullptr;
}
// Muestra el sprite por pantalla
void Sprite::render()
{
if (mEnabled)
if (enabled)
{
mTexture->render(mRenderer, mPosX, mPosY, &mSpriteClip);
texture->render(renderer, x, y, &spriteClip);
}
}
// Obten el valor de la variable
int Sprite::getPosX()
{
return mPosX;
return x;
}
// Obten el valor de la variable
int Sprite::getPosY()
{
return mPosY;
return y;
}
// Obten el valor de la variable
int Sprite::getWidth()
{
return mWidth;
return w;
}
// Obten el valor de la variable
int Sprite::getHeight()
{
return mHeight;
return h;
}
// Establece la posición del objeto
void Sprite::setPos(SDL_Rect rect)
{
x = rect.x;
y = rect.y;
}
// Establece el valor de la variable
void Sprite::setPosX(int x)
{
mPosX = x;
this->x = x;
}
// Establece el valor de la variable
void Sprite::setPosY(int y)
{
mPosY = y;
this->y = y;
}
// Establece el valor de la variable
void Sprite::setWidth(int w)
{
mWidth = w;
this->w = w;
}
// Establece el valor de la variable
void Sprite::setHeight(int h)
{
mHeight = h;
this->h = h;
}
// Obten el valor de la variable
SDL_Rect Sprite::getSpriteClip()
{
return mSpriteClip;
return spriteClip;
}
// Establece el valor de la variable
void Sprite::setSpriteClip(SDL_Rect rect)
{
mSpriteClip = rect;
spriteClip = rect;
}
// Establece el valor de la variable
void Sprite::setSpriteClip(int x, int y, int w, int h)
{
mSpriteClip.x = x;
mSpriteClip.y = y;
mSpriteClip.w = w;
mSpriteClip.h = h;
spriteClip = {x, y, w, h};
}
// Obten el valor de la variable
LTexture *Sprite::getTexture()
{
return mTexture;
return texture;
}
// Establece el valor de la variable
void Sprite::setTexture(LTexture *texture)
{
mTexture = texture;
this->texture = texture;
}
// Establece el valor de la variable
void Sprite::setRenderer(SDL_Renderer *renderer)
{
mRenderer = renderer;
this->renderer = renderer;
}
// Establece el valor de la variable
void Sprite::setEnabled(bool value)
{
mEnabled = value;
enabled = value;
}
// Comprueba si el objeto está habilitado
bool Sprite::isEnabled()
{
return mEnabled;
return enabled;
}
// Devuelve el rectangulo donde está el sprite
SDL_Rect Sprite::getRect()
{
SDL_Rect rect = {getPosX(), getPosY(), getWidth(), getHeight()};
SDL_Rect rect = {x, y, w, h};
return rect;
}
// Establece los valores de posición y tamaño del sprite
void Sprite::setRect(SDL_Rect rect)
{
x = rect.x;
y = rect.y;
w = rect.w;
h = rect.h;
}