Acabada de perfilar la classe PathSprite Menjeades declaracions de utils.h als fitxers que toca
58 lines
1.5 KiB
C++
58 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include <SDL2/SDL_rect.h> // Para SDL_Rect
|
|
#include <SDL2/SDL_render.h> // Para SDL_Renderer, SDL_Texture
|
|
|
|
// Modos de funcionamiento para el tileado de fondo
|
|
enum class TiledBGMode : int
|
|
{
|
|
CIRCLE = 0,
|
|
DIAGONAL = 1,
|
|
RANDOM = 2,
|
|
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:
|
|
// Constantes
|
|
static constexpr int TILE_WIDTH_ = 64; // Ancho del tile
|
|
static constexpr int TILE_HEIGHT_ = 64; // Alto del tile
|
|
|
|
// Objetos y punteros
|
|
SDL_Renderer *renderer_; // El renderizador de la ventana
|
|
SDL_Texture *canvas_; // Textura donde dibujar el fondo formado por tiles
|
|
|
|
// Variables
|
|
SDL_Rect pos_; // Posición y tamaño del mosaico
|
|
SDL_Rect window_; // Ventana visible para la textura de fondo del titulo
|
|
int counter_ = 0; // Contador
|
|
TiledBGMode mode_; // Tipo de movimiento del mosaico
|
|
double sin_[360]; // Vector con los valores del seno precalculados
|
|
|
|
// Rellena la textura con el contenido
|
|
void fillTexture();
|
|
|
|
public:
|
|
// Constructor
|
|
TiledBG(SDL_Rect pos, TiledBGMode mode);
|
|
|
|
// Destructor
|
|
~TiledBG();
|
|
|
|
// Pinta la clase en pantalla
|
|
void render();
|
|
|
|
// Actualiza la lógica de la clase
|
|
void update();
|
|
|
|
// Recarga las texturas
|
|
void reLoad();
|
|
}; |