188 lines
3.2 KiB
C++
188 lines
3.2 KiB
C++
#include "const.h"
|
|
#include "movingsprite.h"
|
|
#include <iostream>
|
|
|
|
// Constructor
|
|
MovingSprite::MovingSprite()
|
|
{
|
|
init(0, 0, 0, 0, 0, 0, 0, 0, nullptr, nullptr);
|
|
}
|
|
|
|
// Destructor
|
|
MovingSprite::~MovingSprite()
|
|
{
|
|
init(0, 0, 0, 0, 0, 0, 0, 0, nullptr, nullptr);
|
|
}
|
|
|
|
// Iniciador
|
|
void MovingSprite::init(float x, float y, int w, int h, float velx, float vely, float accelx, float accely, 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 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 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, w, h);
|
|
}
|
|
|
|
// Mueve el sprite
|
|
void MovingSprite::move()
|
|
{
|
|
mPosX += mVelX;
|
|
mPosY += mVelY;
|
|
|
|
mVelX += mAccelX;
|
|
mVelY += mAccelY;
|
|
}
|
|
|
|
// Muestra el sprite por pantalla
|
|
void MovingSprite::render()
|
|
{
|
|
//mTexture->render(mRenderer, (int)mPosX, (int)mPosY, &mSpriteClip);
|
|
mTexture->render(mRenderer, (int)mPosX, (int)mPosY, &mSpriteClip, mZoomW, mZoomH, mAngle);
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
float MovingSprite::getPosX()
|
|
{
|
|
return mPosX;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
float MovingSprite::getPosY()
|
|
{
|
|
return mPosY;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
float MovingSprite::getVelX()
|
|
{
|
|
return mVelX;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
float MovingSprite::getVelY()
|
|
{
|
|
return mVelY;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
float MovingSprite::getAccelX()
|
|
{
|
|
return mAccelX;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
float MovingSprite::getAccelY()
|
|
{
|
|
return mAccelY;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
float MovingSprite::getZoomW()
|
|
{
|
|
return mZoomW;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
float MovingSprite::getZoomH()
|
|
{
|
|
return mZoomH;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
double MovingSprite::getAngle()
|
|
{
|
|
return mAngle;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setPosX(float x)
|
|
{
|
|
mPosX = x;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setPosY(float y)
|
|
{
|
|
mPosY = y;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setVelX(float x)
|
|
{
|
|
mVelX = x;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setVelY(float y)
|
|
{
|
|
mVelY = y;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setAccelX(float x)
|
|
{
|
|
mAccelX = x;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setAccelY(float y)
|
|
{
|
|
mAccelY = y;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setZoomW(float w)
|
|
{
|
|
mZoomW = w;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setZoomH(float h)
|
|
{
|
|
mZoomH = h;
|
|
}
|
|
|
|
// Establece el valor de la variable
|
|
void MovingSprite::setAngle(double a)
|
|
{
|
|
mAngle = a;
|
|
}
|
|
|
|
// Incrementa el valor de la variable
|
|
void MovingSprite::incAngle(double inc)
|
|
{
|
|
mAngle += inc;
|
|
}
|
|
|
|
// Decrementa el valor de la variable
|
|
void MovingSprite::decAngle(double dec)
|
|
{
|
|
mAngle -= dec;
|
|
} |