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

View File

@@ -23,15 +23,15 @@ class Instructions
{ {
private: private:
// Objetos // Objetos
SDL_Renderer *renderer; // El renderizador de la ventana SDL_Renderer *renderer; // El renderizador de la ventana
Screen *screen; // Objeto encargado de dibujar en pantalla Screen *screen; // Objeto encargado de dibujar en pantalla
LTexture *itemTexture; // Textura con los graficos std::vector<LTexture *> itemTextures; // Vector con las texturas de los items
SDL_Event *eventHandler; // Manejador de eventos SDL_Event *eventHandler; // Manejador de eventos
SDL_Texture *backbuffer; // Textura para usar como backbuffer SDL_Texture *backbuffer; // Textura para usar como backbuffer
Sprite *sprite; // Sprite con la textura de las instrucciones Sprite *sprite; // Sprite con la textura de las instrucciones
Asset *asset; // Objeto que gestiona todos los ficheros de recursos Asset *asset; // Objeto que gestiona todos los ficheros de recursos
Lang *lang; // Objeto para gestionar los textos en diferentes idiomas Lang *lang; // Objeto para gestionar los textos en diferentes idiomas
Text *text; // Objeto para escribir texto Text *text; // Objeto para escribir texto
// Variables // Variables
Uint16 counter; // Contador Uint16 counter; // Contador