#include "sprite.h" #include // Constructor Sprite::Sprite(int x, int y, int w, int h, Texture *texture, SDL_Renderer *renderer) { // Establece la posición X,Y del sprite 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 this->renderer = renderer; // Establece la textura donde están los gráficos para el sprite this->texture = texture; // Establece el rectangulo de donde coger la imagen spriteClip = {0, 0, w, h}; // Inicializa variables enabled = true; zoomW = 1.0f; zoomH = 1.0f; } Sprite::Sprite(SDL_Rect rect, Texture *texture, SDL_Renderer *renderer) { // Establece la posición X,Y del sprite this->x = rect.x; this->y = rect.y; // Establece el alto y el ancho del sprite this->w = rect.w; this->h = rect.h; // Establece el puntero al renderizador de la ventana this->renderer = renderer; // Establece la textura donde están los gráficos para el sprite this->texture = texture; // Establece el rectangulo de donde coger la imagen spriteClip = {0, 0, w, h}; // Inicializa variables enabled = true; zoomW = 1.0f; zoomH = 1.0f; } // Destructor Sprite::~Sprite() { } // Muestra el sprite por pantalla void Sprite::render() { if (enabled) { texture->render(renderer, x, y, &spriteClip, zoomW, zoomH); } } // Obten el valor de la variable int Sprite::getPosX() { return x; } // Obten el valor de la variable int Sprite::getPosY() { return y; } // Obten el valor de la variable int Sprite::getWidth() { return w; } // Obten el valor de la variable int Sprite::getHeight() { return h; } // Establece la posición del objeto void Sprite::setPos(SDL_Rect rect) { this->x = rect.x; this->y = rect.y; } // Establece el valor de la variable void Sprite::setPosX(int x) { this->x = x; } // Establece el valor de la variable void Sprite::setPosY(int y) { this->y = y; } // Incrementa el valor de la variable void Sprite::incPosX(int value) { x += value; } // Incrementa el valor de la variable void Sprite::incPosY(int value) { y += value; } // Establece el valor de la variable void Sprite::setWidth(int w) { this->w = w; } // Establece el valor de la variable void Sprite::setHeight(int h) { this->h = h; } // Obten el valor de la variable SDL_Rect Sprite::getSpriteClip() { return spriteClip; } // Establece el valor de la variable void Sprite::setSpriteClip(SDL_Rect rect) { spriteClip = rect; } // Establece el valor de la variable void Sprite::setSpriteClip(int x, int y, int w, int h) { if (w == -1 || h == -1) { spriteClip = {x, y, this->w, this->h}; } else { spriteClip = {x, y, w, h}; } } // Obten el valor de la variable Texture *Sprite::getTexture() { return texture; } // Establece el valor de la variable void Sprite::setTexture(Texture *texture) { this->texture = texture; } // Establece el valor de la variable void Sprite::setRenderer(SDL_Renderer *renderer) { this->renderer = renderer; } // Obten el valor de la variable SDL_Renderer *Sprite::getRenderer() { return renderer; } // Establece el valor de la variable void Sprite::setEnabled(bool value) { enabled = value; } // Comprueba si el objeto está habilitado bool Sprite::isEnabled() { return enabled; } // Devuelve el rectangulo donde está el sprite SDL_Rect Sprite::getRect() { 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; } // Establece el nivel de zoom en horizontal void Sprite::setZoomW(float value) { zoomW = value; } // Establece el nivel de zoom en vertical void Sprite::setZoomH(float value) { zoomH = value; }