#pragma once #include #include "texture.h" #ifndef SPRITE_H #define SPRITE_H // Clase sprite class Sprite { protected: // Objetos y punteros SDL_Renderer *renderer; // Puntero al renderizador de la ventana Texture *texture; // Textura donde estan todos los dibujos del sprite // Variables int x; // Posición en el eje X donde dibujar el sprite int y; // Posición en el eje Y donde dibujar el sprite int w; // Ancho del sprite int h; // Alto del sprite SDL_Rect spriteClip; // Rectangulo de origen de la textura que se dibujará en pantalla bool enabled; // Indica si el sprite esta habilitado float zoomW; // Cantidad de zoom en horizontal a aplicar al sprite float zoomH; // Cantidad de zoom en verical a aplicar al sprite public: // Constructor Sprite(int x = 0, int y = 0, int w = 0, int h = 0, Texture *texture = nullptr, SDL_Renderer *renderer = nullptr); Sprite(SDL_Rect rect, Texture *texture, SDL_Renderer *renderer); // Destructor ~Sprite(); // Muestra el sprite por pantalla void render(); // Obten el valor de la variable int getPosX(); // Obten el valor de la variable int getPosY(); // Obten el valor de la variable int getWidth(); // Obten el valor de la variable int getHeight(); // Establece la posición del objeto void setPos(SDL_Rect rect); // Establece el valor de la variable void setPosX(int x); // Establece el valor de la variable void setPosY(int y); // Incrementa el valor de la variable void incPosX(int value); // Incrementa el valor de la variable void incPosY(int value); // Establece el valor de la variable void setWidth(int w); // Establece el valor de la variable void setHeight(int h); // Obten el valor de la variable SDL_Rect getSpriteClip(); // Establece el valor de la variable void setSpriteClip(SDL_Rect rect); // Establece el valor de la variable void setSpriteClip(int x, int y, int w, int h); // Obten el valor de la variable Texture *getTexture(); // Establece el valor de la variable void setTexture(Texture *texture); // Establece el valor de la variable void setRenderer(SDL_Renderer *renderer); // Obten el valor de la variable SDL_Renderer *getRenderer(); // Establece el valor de la variable void setEnabled(bool value); // Comprueba si el objeto está habilitado bool isEnabled(); // Devuelve el rectangulo donde está el sprite SDL_Rect getRect(); // Establece los valores de posición y tamaño del sprite void setRect(SDL_Rect rect); // Establece el nivel de zoom en horizontal void setZoomW(float value); // Establece el nivel de zoom en vertical void setZoomH(float value); }; #endif