#include "core/rendering/sprite.h" #include "core/rendering/texture.h" // for Texture // Constructor Sprite::Sprite(int x, int y, int w, int h, Texture *texture, SDL_Renderer *renderer) : x(x), y(y), w(w), h(h), renderer(renderer), texture(texture), spriteClip{0, 0, w, h}, enabled(true) { } Sprite::Sprite(SDL_Rect rect, Texture *texture, SDL_Renderer *renderer) : x(rect.x), y(rect.y), w(rect.w), h(rect.h), renderer(renderer), texture(texture), spriteClip{0, 0, rect.w, rect.h}, enabled(true) { } // Destructor Sprite::~Sprite() { texture = nullptr; renderer = nullptr; } // Muestra el sprite por pantalla void Sprite::render() { if (enabled) { texture->render(renderer, x, y, &spriteClip); } } // 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; } // 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) { 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; } // Obten el valor de la variable SDL_Renderer *Sprite::getRenderer() { return renderer; } // Establece el valor de la variable void Sprite::setRenderer(SDL_Renderer *renderer) { this->renderer = 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; }