Retocadas las clases Sprite e hijas

This commit is contained in:
2022-07-12 17:32:12 +02:00
parent 834d3a09a4
commit ae841a45ee
6 changed files with 91 additions and 71 deletions

View File

@@ -1,6 +1,16 @@
#include "const.h"
#include "animatedsprite.h"
// Constructor
AnimatedSprite::AnimatedSprite(LTexture *texture, SDL_Renderer *renderer)
{
// Copia los punteros
setTexture(texture);
setRenderer(renderer);
init();
}
// Destructor
AnimatedSprite::~AnimatedSprite()
{

View File

@@ -27,11 +27,7 @@ private:
public:
// Constructor
AnimatedSprite(LTexture *texture, SDL_Renderer *renderer)
: MovingSprite(0, 0, 0, 0, 0, 0, 0, 0, texture, renderer)
{
};
AnimatedSprite(LTexture *texture = nullptr, SDL_Renderer *renderer = nullptr);
// Destructor
~AnimatedSprite();

View File

@@ -1,6 +1,54 @@
#include "const.h"
#include "movingsprite.h"
// Constructor
MovingSprite::MovingSprite(float x, float y, int w, int h, float velx, float vely, float accelx, float accely, LTexture *texture, SDL_Renderer *renderer)
{
// Copia los punteros
setTexture(texture);
setRenderer(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 aceleración X,Y del sprite
setAccelX(accelx);
setAccelY(accely);
// Establece el zoom W,H del sprite
setZoomW(1);
setZoomH(1);
// Establece el angulo con el que se dibujará
setAngle(0.0);
// Establece los valores de rotacion
setRotate(false);
setRotateSpeed(0);
setRotateAmount(0.0);
// Contador interno
mCounter = 0;
// Establece el rectangulo de donde coger la imagen
setSpriteClip(0, 0, w, h);
// Establece el centro de rotación
mCenter = {0,0};
// Establece el tipo de volteado
mFlip = SDL_FLIP_NONE;
};
// Destructor
MovingSprite::~MovingSprite()
{

View File

@@ -31,43 +31,7 @@ protected:
public:
// Constructor
MovingSprite(float x, float y, int w, int h, float velx, float vely, float accelx, float accely, LTexture *texture, SDL_Renderer *renderer)
: Sprite((int)x, (int)y, w, h, texture, 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 aceleración X,Y del sprite
setAccelX(accelx);
setAccelY(accely);
// Establece el zoom W,H del sprite
setZoomW(1);
setZoomH(1);
// Establece el angulo con el que se dibujará
setAngle(0.0);
// Establece los valores de rotacion
setRotate(false);
setRotateSpeed(0);
setRotateAmount(0.0);
// Contador interno
mCounter = 0;
// Establece el rectangulo de donde coger la imagen
setSpriteClip(0, 0, w, h);
};
MovingSprite(float x = 0, float y = 0, int w = 0, int h = 0, float velx = 0, float vely = 0, float accelx = 0, float accely = 0, LTexture *texture = nullptr, SDL_Renderer *renderer = nullptr);
// Destructor
~MovingSprite();

View File

@@ -1,15 +1,38 @@
#include "sprite.h"
// 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);
// Establece el puntero al renderizador de la ventana
setRenderer(renderer);
// Establece la textura donde están los gráficos para el sprite
setTexture(texture);
// Establece el rectangulo de donde coger la imagen
setSpriteClip(x, y, w, h);
// 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);
@@ -21,30 +44,7 @@ Sprite::Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
setSpriteClip(rect);
// Inicializa variables
mEnabled = true;
}
Sprite::Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer)
{
// Establece el alto y el ancho del sprite
mWidth = w;
mHeight = h;
// Establece la posición X,Y del sprite
mPosX = x;
mPosY = y;
// Establece el puntero al renderizador de la ventana
setRenderer(renderer);
// Establece la textura donde están los gráficos para el sprite
setTexture(texture);
// Establece el rectangulo de donde coger la imagen
setSpriteClip(x,y,w,h);
// Inicializa variables
mEnabled = true;
setEnabled(true);
}
// Destructor
@@ -58,7 +58,9 @@ Sprite::~Sprite()
void Sprite::render()
{
if (mEnabled)
{
mTexture->render(mRenderer, mPosX, mPosY, &mSpriteClip);
}
}
// Obten el valor de la variable

View File

@@ -22,8 +22,8 @@ protected:
public:
// Constructor
Sprite(int x = 0, int y = 0, int w = 0, int h = 0, LTexture *texture = nullptr, SDL_Renderer *renderer = nullptr);
Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer);
Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer);
// Destructor
~Sprite();