#pragma once #include #include "common/asset.h" #include "common/input.h" #include "common/jail_audio.h" #include "common/screen.h" #include "common/sprite.h" #include "common/text.h" #include "common/utils.h" #include "const.h" #include "lang.h" #include "tiledbg.h" #ifndef INSTRUCTIONS_H #define INSTRUCTIONS_H // Clase Instructions class Instructions { private: // Objetos y punteros SDL_Renderer *renderer; // El renderizador de la ventana Screen *screen; // Objeto encargado de dibujar en pantalla std::vector itemTextures; // Vector con las texturas de los items std::vector sprites; // Vector con los sprites de los items SDL_Event *eventHandler; // Manejador de eventos SDL_Texture *backbuffer; // Textura para usar como backbuffer SDL_Texture *texture; // Textura fija con el texto Asset *asset; // Objeto que gestiona todos los ficheros de recursos Input *input; // Objeto pata gestionar la entrada Lang *lang; // Objeto para gestionar los textos en diferentes idiomas Text *text; // Objeto para escribir texto Tiledbg *tiledbg; // Objeto para dibujar el mosaico animado de fondo section_t *section; // Estado del bucle principal para saber si continua o se sale param_t *param; // Puntero con todos los parametros del programa // Variables int counter; // Contador int counterEnd; // Valor final para el contador Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa SDL_Rect view; // Vista del backbuffer que se va amostrar por pantalla SDL_Point spritePos; // Posición del primer sprite // Actualiza las variables void update(); // Pinta en pantalla void render(); // Comprueba los eventos void checkEvents(); // Comprueba las entradas void checkInput(); // Rellena la textura de texto void fillTexture(); // Rellena el backbuffer void fillBackbuffer(); // Inicializa los sprites de los items void iniSprites(); // Actualiza los sprites void updateSprites(); // Recarga todas las texturas void reloadTextures(); public: // Constructor Instructions(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Lang *lang, param_t *param, section_t *section); // Destructor ~Instructions(); // Bucle principal void run(); }; #endif