Añadido el procedimiento reLoadTexture a todos los objetos que lo necesitaban

This commit is contained in:
2022-09-01 20:25:25 +02:00
parent 4e219c47f6
commit 31dea2aeea
16 changed files with 165 additions and 76 deletions

View File

@@ -14,7 +14,7 @@ Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTrac
// Crea los objetos
load(file_path);
texture = new LTexture(renderer,asset->get(tileset));
texture = new LTexture(renderer, asset->get(tileset));
itemSound = JA_LoadSound(asset->get("item.wav").c_str());
// Crea la textura para el mapa de tiles de la habitación
@@ -207,37 +207,37 @@ bool Room::setVars(std::string var, std::string value)
{
name = value;
}
else if (var == "bgColor")
{
bgColor = stringToColor(value);
}
else if (var == "tileset")
{
tileset = value;
}
else if (var == "roomUp")
{
roomUp = value;
}
else if (var == "roomDown")
{
roomDown = value;
}
else if (var == "roomLeft")
{
roomLeft = value;
}
else if (var == "roomRight")
{
roomRight = value;
}
else if (var == "tilemap")
{
// Se introducen los valores separados por comas en un vector
@@ -248,11 +248,11 @@ bool Room::setVars(std::string var, std::string value)
tilemap.push_back(std::stoi(tmp));
}
}
else if (var == "")
{
}
else
{
success = false;
@@ -536,13 +536,13 @@ bool Room::enemyCollision(SDL_Rect &rect)
bool Room::itemCollision(SDL_Rect &rect)
{
bool collision = false;
for (int i =0;i<items.size();i++)
for (int i = 0; i < items.size(); i++)
{
if (checkCollision(rect, items[i]->getCollider()))
{
itemTracker->addItem(name, items[i]->getPos());
delete items[i];
items.erase(items.begin()+i);
items.erase(items.begin() + i);
JA_PlaySound(itemSound);
*itemsPicked = *itemsPicked + 1;
collision = true;
@@ -550,4 +550,20 @@ bool Room::itemCollision(SDL_Rect &rect)
}
return collision;
}
// Recarga la textura
void Room::reLoadTexture()
{
texture->reLoad();
fillMapTexture();
for (auto enemy : enemies)
{
enemy->reLoadTexture();
}
for (auto item : items)
{
item->reLoadTexture();
}
}