#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), sprite_clip_{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), sprite_clip_{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_, &sprite_clip_); } } // 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 sprite_clip_; } // Establece el valor de la variable void Sprite::setSpriteClip(SDL_Rect rect) { sprite_clip_ = rect; } // Establece el valor de la variable void Sprite::setSpriteClip(int x, int y, int w, int h) { sprite_clip_ = {.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; }