#pragma once #include #include "common/asset.h" #include "common/sprite.h" #include "common/utils.h" #include #ifndef ITEM_H #define ITEM_H struct item_t { SDL_Renderer *renderer; // El renderizador de la ventana Texture *texture; // Textura con los graficos del item std::string tileSetFile; // Ruta al fichero con los graficos del item int x; // Posicion del item en pantalla int y; // Posicion del item en pantalla int tile; // Numero de tile dentro de la textura int counter; // Contador inicial. Es el que lo hace cambiar de color color_t color1; // Uno de los dos colores que se utiliza para el item color_t color2; // Uno de los dos colores que se utiliza para el item }; class Item { private: // Objetos y punteros Sprite *sprite; // Sprite del objeto // Variables std::vector color; // Vector con los colores del objeto int counter; // Contador interno SDL_Rect collider; // Rectangulo de colisión int colorChangeSpeed; // Cuanto mas alto, mas tarda en cambiar de color public: // Constructor Item(item_t item); // Destructor ~Item(); // Pinta el objeto en pantalla void render(); // Actualiza las variables del objeto void update(); // Obtiene el rectangulo de colision del objeto SDL_Rect &getCollider(); // Obtiene su ubicación SDL_Point getPos(); // Recarga la textura void reLoadTexture(); // Asigna los colores del objeto void setColors(color_t col1, color_t col2); }; #endif