#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 auto Sprite::getPosX() const -> int { return x; } // Obten el valor de la variable auto Sprite::getPosY() const -> int { return y; } // Obten el valor de la variable auto Sprite::getWidth() const -> int { return w; } // Obten el valor de la variable auto Sprite::getHeight() const -> int { 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 auto Sprite::getSpriteClip() -> SDL_Rect { 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 = x, .y = y, .w = w, .h = h}; } // Obten el valor de la variable auto Sprite::getTexture() -> Texture * { return texture; } // Establece el valor de la variable void Sprite::setTexture(Texture *texture) { this->texture = texture; } // Obten el valor de la variable auto Sprite::getRenderer() -> SDL_Renderer * { 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 auto Sprite::isEnabled() -> bool { return enabled; } // Devuelve el rectangulo donde está el sprite auto Sprite::getRect() -> SDL_Rect { 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; }