#include "item.h" #include #include // Constructor Item::Item(item_t item) { // Obten punteros a objetos asset = item.asset; renderer = item.renderer; // Crea objetos texture = new LTexture(renderer, asset->get(item.tileset)); sprite = new Sprite(item.x, item.y, 8, 8, texture, renderer); // Inicia variables sprite->setSpriteClip(item.tile * 8, 0, 8, 8); collider = sprite->getRect(); colorChangeSpeed = 4; counter = item.counter * colorChangeSpeed; // Inicializa los colores color_t c = stringToColor("blue"); color.push_back(c); c = stringToColor("red"); color.push_back(c); c = stringToColor("purple"); color.push_back(c); c = stringToColor("green"); color.push_back(c); c = stringToColor("cyan"); color.push_back(c); c = stringToColor("yellow"); color.push_back(c); } // Destructor Item::~Item() { delete texture; delete sprite; } // 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); } // Actualiza las variables del objeto void Item::update() { counter++; } // Coge el objeto void Item::pick() { sprite->setEnabled(false); } // Obtiene el rectangulo de colision del objeto SDL_Rect &Item::getCollider() { return collider; } // Obtiene su ubicación SDL_Point Item::getPos() { const SDL_Point p = {sprite->getPosX(), sprite->getPosY()}; return p; } // Recarga la textura void Item::reLoadTexture() { texture->reLoad(); }