#include "game/entities/item.hpp" #include "core/rendering/surface_sprite.hpp" // Para SSprite #include "core/resources/resource.hpp" // Para Resource // Constructor Item::Item(ItemData item) : sprite_(std::make_shared(Resource::get()->getSurface(item.tile_set_file), item.x, item.y, ITEM_SIZE, ITEM_SIZE)), change_color_speed_(4) { // Inicia variables sprite_->setClip((item.tile % 10) * ITEM_SIZE, (item.tile / 10) * ITEM_SIZE, ITEM_SIZE, ITEM_SIZE); collider_ = sprite_->getRect(); 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_->render(1, color_.at(INDEX)); } // Obtiene su ubicación SDL_FPoint Item::getPos() { const SDL_FPoint P = {sprite_->getX(), sprite_->getY()}; return P; } // Asigna los colores del objeto void Item::setColors(Uint8 col1, Uint8 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); }