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 "const.h"
#include "animatedsprite.h" #include "animatedsprite.h"
// Constructor
AnimatedSprite::AnimatedSprite(LTexture *texture, SDL_Renderer *renderer)
{
// Copia los punteros
setTexture(texture);
setRenderer(renderer);
init();
}
// Destructor // Destructor
AnimatedSprite::~AnimatedSprite() AnimatedSprite::~AnimatedSprite()
{ {

View File

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

View File

@@ -1,6 +1,54 @@
#include "const.h" #include "const.h"
#include "movingsprite.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 // Destructor
MovingSprite::~MovingSprite() MovingSprite::~MovingSprite()
{ {

View File

@@ -31,43 +31,7 @@ protected:
public: public:
// Constructor // Constructor
MovingSprite(float x, float y, int w, int h, float velx, float vely, float accelx, float accely, LTexture *texture, SDL_Renderer *renderer) 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);
: 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);
};
// Destructor // Destructor
~MovingSprite(); ~MovingSprite();

View File

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

View File

@@ -22,8 +22,8 @@ protected:
public: public:
// Constructor // 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(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer);
Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer);
// Destructor // Destructor
~Sprite(); ~Sprite();