#include "sprite.h" // Constructor Sprite::Sprite(std::shared_ptr texture, int x, int y, int w, int h) : texture_(texture), pos_((SDL_Rect){x, y, w, h}), sprite_clip_((SDL_Rect){0, 0, pos_.w, pos_.h}) {} Sprite::Sprite(std::shared_ptr texture, SDL_Rect rect) : texture_(texture), pos_(rect), sprite_clip_((SDL_Rect){0, 0, pos_.w, pos_.h}) {} Sprite::Sprite(std::shared_ptr texture) : texture_(texture), pos_({0, 0, texture_->getWidth(), texture_->getHeight()}), sprite_clip_(pos_) {} // Muestra el sprite por pantalla void Sprite::render() { texture_->render(pos_.x, pos_.y, &sprite_clip_); } // Obten el valor de la variable int Sprite::getX() const { return pos_.x; } // Obten el valor de la variable int Sprite::getY() const { return pos_.y; } // Obten el valor de la variable int Sprite::getWidth() const { return pos_.w; } // Obten el valor de la variable int Sprite::getHeight() const { return pos_.h; } // Establece la posición del objeto void Sprite::setPosition(int x, int y) { pos_.x = x; pos_.y = y; } // Establece la posición del objeto void Sprite::setPosition(SDL_Point p) { pos_.x = p.x; pos_.y = p.y; } // Establece la posición del objeto void Sprite::setPosition(SDL_Rect r) { pos_ = r; } // Establece el valor de la variable void Sprite::setX(int x) { pos_.x = x; } // Establece el valor de la variable void Sprite::setY(int y) { pos_.y = y; } // Establece el valor de la variable void Sprite::setWidth(int w) { pos_.w = w; } // Establece el valor de la variable void Sprite::setHeight(int h) { pos_.h = h; } // Obten el valor de la variable SDL_Rect Sprite::getSpriteClip() const { 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_ = (SDL_Rect){x, y, w, h}; } // Obten el valor de la variable std::shared_ptr Sprite::getTexture() const { return texture_; } // Establece el valor de la variable void Sprite::setTexture(std::shared_ptr texture) { texture_ = texture; } // Devuelve el rectangulo donde está el sprite SDL_Rect Sprite::getPosition() const { return pos_; } // Incrementa el valor de la variable void Sprite::incX(int value) { pos_.x += value; } // Incrementa el valor de la variable void Sprite::incY(int value) { pos_.y += value; }