#include "item.h" #include "sprite.h" // Para Sprite #include "texture.h" // Para Texture // Constructor Item::Item(item_t item) { constexpr int ITEMSIZE = 8; // Crea objetos; sprite = std::make_shared(item.texture, item.x, item.y, ITEMSIZE, ITEMSIZE); // Inicia variables sprite->setClip((item.tile % 10) * ITEMSIZE, (item.tile / 10) * ITEMSIZE, ITEMSIZE, ITEMSIZE); collider = sprite->getRect(); colorChangeSpeed = 4; counter = item.counter * colorChangeSpeed; // Inicializa los colores Color c = item.color1; color.push_back(c); color.push_back(c); c = item.color2; color.push_back(c); color.push_back(c); } // Pinta el objeto en pantalla void Item::render() { const int index = (counter / colorChangeSpeed) % color.size(); sprite->getTexture()->setColor(color[index].r, color[index].g, color[index].b); sprite->render(); sprite->getTexture()->setColor(255, 255, 255); } // Obtiene su ubicación SDL_Point Item::getPos() { const SDL_Point p = {sprite->getX(), sprite->getY()}; return p; } // Asigna los colores del objeto void Item::setColors(Color col1, Color col2) { // Reinicializa el vector de colores color.clear(); // Añade el primer color color.push_back(col1); color.push_back(col1); // Añade el segundo color color.push_back(col2); color.push_back(col2); }