#include "item.h" #include "resource.h" #include "sprite.h" // Para Sprite #include "texture.h" // Para Texture // Constructor Item::Item(ItemData item) { constexpr int ITEMSIZE = 8; // Crea objetos; sprite_ = std::make_shared(Resource::get()->getTexture(item.tile_set_file), item.x, item.y, ITEMSIZE, ITEMSIZE); // Inicia variables sprite_->setClip((item.tile % 10) * ITEMSIZE, (item.tile / 10) * ITEMSIZE, ITEMSIZE, ITEMSIZE); collider_ = sprite_->getRect(); change_color_speed = 4; counter_ = item.counter * change_color_speed; // Inicializa los colores color_.push_back(item.color1); color_.push_back(item.color1); color_.push_back(item.color2); color_.push_back(item.color2); } // Pinta el objeto en pantalla void Item::render() { const int index = (counter_ / change_color_speed) % 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); }