Las instrucciones ya usan las nuevas texturas de objetos

This commit is contained in:
2022-10-06 13:46:41 +02:00
parent 56c1a1d7f3
commit bebc016f3c
2 changed files with 44 additions and 19 deletions

View File

@@ -12,9 +12,27 @@ Instructions::Instructions(SDL_Renderer *renderer, Screen *screen, Asset *asset,
this->lang = lang;
// Reserva memoria para los punteros
LTexture *item1 = new LTexture(renderer, asset->get("item_points1_disk.png"));
itemTextures.push_back(item1);
LTexture *item2 = new LTexture(renderer, asset->get("item_points2_gavina.png"));
itemTextures.push_back(item2);
LTexture *item3 = new LTexture(renderer, asset->get("item_points3_pacmar.png"));
itemTextures.push_back(item3);
LTexture *item4 = new LTexture(renderer, asset->get("item_clock.png"));
itemTextures.push_back(item4);
LTexture *item5 = new LTexture(renderer, asset->get("item_coffee.png"));
itemTextures.push_back(item5);
LTexture *item6 = new LTexture(renderer, asset->get("item_coffee_machine.png"));
itemTextures.push_back(item6);
eventHandler = new SDL_Event();
itemTexture = new LTexture(renderer, asset->get("items.png"));
sprite = new Sprite(0, 0, GAME_WIDTH, GAME_HEIGHT, itemTexture, renderer);
sprite = new Sprite(0, 0, 16, 16, itemTextures.at(0), renderer);
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
// Crea un backbuffer para el renderizador
@@ -36,8 +54,12 @@ Instructions::Instructions(SDL_Renderer *renderer, Screen *screen, Asset *asset,
// Destructor
Instructions::~Instructions()
{
itemTexture->unload();
delete itemTexture;
for (auto texture : itemTextures)
{
texture->unload();
delete texture;
}
itemTextures.clear();
delete sprite;
delete eventHandler;
@@ -121,36 +143,36 @@ void Instructions::render()
}
// Disquito
sprite->setTexture(itemTextures.at(0));
sprite->setPos(destRect1);
srcRect.x = 0;
srcRect.y = 16 * (((counter + 12) / 36) % 2);
sprite->setSpriteClip(srcRect);
sprite->render();
// Gavineixon
sprite->setTexture(itemTextures.at(1));
sprite->setPos(destRect2);
srcRect.x += srcRect.w;
srcRect.y = 16 * (((counter + 9) / 36) % 2);
sprite->setSpriteClip(srcRect);
sprite->render();
// Pacmar
sprite->setTexture(itemTextures.at(2));
sprite->setPos(destRect3);
srcRect.x += srcRect.w;
srcRect.y = 16 * (((counter + 6) / 36) % 2);
sprite->setSpriteClip(srcRect);
sprite->render();
// Time Stopper
sprite->setTexture(itemTextures.at(3));
sprite->setPos(destRect4);
srcRect.x += srcRect.w;
srcRect.y = 16 * (((counter + 3) / 36) % 2);
sprite->setSpriteClip(srcRect);
sprite->render();
// Coffee
sprite->setTexture(itemTextures.at(4));
sprite->setPos(destRect5);
srcRect.x += (srcRect.w * 2); // Se salta el icono del TNT
srcRect.y = 16 * (((counter + 0) / 36) % 2);
sprite->setSpriteClip(srcRect);
sprite->render();
@@ -204,7 +226,10 @@ void Instructions::checkEventHandler()
}
else
{
manualQuit = true;
if (counter > 30)
{
manualQuit = true;
}
}
}
}