Files
coffee_crisis_arcade_edition/source/tiledbg.h
Sergio Valor 9d5aee2562 Afegides mes descripcions a les classes
Eliminat el punter a renderer de les classes-estat que faltava
2024-08-12 08:55:41 +02:00

60 lines
1.6 KiB
C++

#pragma once
#include <SDL2/SDL.h>
#include "common/asset.h"
#include "common/screen.h"
#include "common/sprite.h"
#include "const.h"
// Modos de funcionamiento para el tileado de fondo
#define TILED_MODE_CIRCLE 0
#define TILED_MODE_DIAGONAL 1
#define TILED_MODE_RANDOM 2
#define TILED_MODE_STATIC 3
/*
Esta clase dibuja un tileado de fondo. Para ello se sirve de una textura "canvas", que rellena con los tiles.
El rectangulo "window" recorre la textura de diferentes formas para generar el efecto de movimiento de la
textura en pantalla
*/
// Clase Tiledbg
class Tiledbg
{
private:
// Objetos y punteros
SDL_Renderer *renderer; // El renderizador de la ventana
Asset *asset; // Objeto que gestiona todos los ficheros de recursos
SDL_Rect window; // Ventana visible para la textura de fondo del titulo
SDL_Texture *canvas; // Textura donde dibujar el fondo formado por tiles
// Variables
SDL_Rect pos; // Posición y tamaña del mosaico
int counter; // Contador
int mode; // Tipo de movimiento del mosaico
float sin[360]; // Vector con los valores del seno precalculados
int tileWidth; // Ancho del tile
int tileHeight; // Alto del tile
// Inicializa las variables
void init();
// Rellena la textura con el contenido
void fillTexture();
public:
// Constructor
Tiledbg(SDL_Renderer *renderer, Asset *asset, SDL_Rect pos, int mode);
// Destructor
~Tiledbg();
// Pinta la clase en pantalla
void render();
// Actualiza la lógica de la clase
void update();
// Recarga las texturas
void reLoad();
};