Añadido cambio de color en las nubes
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
El objeto tiene un tamaño total definido en la variable "rect". En principio este
|
||||
tamaño coincide con el tamaño de la ventana o resolución del juego, pero se pinta
|
||||
solo el rectangulo definido en srcRect en la posición de la pantalla definida en
|
||||
solo el rectangulo definido en srcRect en la posición de la pantalla definida en
|
||||
dstRect.
|
||||
|
||||
Utiliza varios métodos para definir su comportamiento:
|
||||
@@ -44,92 +44,102 @@
|
||||
class Background
|
||||
{
|
||||
private:
|
||||
// Objetos y punteros
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
Screen *screen; // Objeto encargado de dibujar en pantalla
|
||||
Asset *asset; // Objeto que gestiona todos los ficheros de recursos
|
||||
// Objetos y punteros
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
Asset *asset; // Objeto que gestiona todos los ficheros de recursos
|
||||
|
||||
Texture *buildingsTexture; // Textura con los edificios de fondo
|
||||
Texture *clouds1Texture; // Textura con las nubes de fondo
|
||||
Texture *clouds2Texture; // Textura con las nubes de fondo
|
||||
Texture *grassTexture; // Textura con la hierba del suelo
|
||||
Texture *gradientsTexture; // Textura con los diferentes colores de fondo del juego
|
||||
Texture *buildingsTexture; // Textura con los edificios de fondo
|
||||
Texture *topCloudsTexture; // Textura con las nubes de fondo
|
||||
Texture *bottomCloudsTexture; // Textura con las nubes de fondo
|
||||
Texture *grassTexture; // Textura con la hierba del suelo
|
||||
Texture *gradientsTexture; // Textura con los diferentes colores de fondo del juego
|
||||
|
||||
MovingSprite *clouds1A; // Sprite para las nubes superiores
|
||||
MovingSprite *clouds1B; // Sprite para las nubes superiores
|
||||
MovingSprite *clouds2A; // Sprite para las nubes inferiores
|
||||
MovingSprite *clouds2B; // Sprite para las nubes inferiores
|
||||
MovingSprite *topCloudsSprite_A; // Sprite para las nubes superiores
|
||||
MovingSprite *topCloudsSprite_B; // Sprite para las nubes superiores
|
||||
MovingSprite *bottomCloudsSprite_A; // Sprite para las nubes inferiores
|
||||
MovingSprite *bottomCloudsSprite_B; // Sprite para las nubes inferiores
|
||||
|
||||
Sprite *buildingsSprite; // Sprite con los edificios de fondo
|
||||
Sprite *gradientSprite; // Sprite con los graficos del degradado de color de fondo
|
||||
Sprite *grassSprite; // Sprite para la hierba
|
||||
Sprite *buildingsSprite; // Sprite con los edificios de fondo
|
||||
Sprite *gradientSprite; // Sprite con los graficos del degradado de color de fondo
|
||||
Sprite *grassSprite; // Sprite para la hierba
|
||||
|
||||
SDL_Texture *canvas; // Textura para componer el fondo
|
||||
SDL_Texture *colorTexture; // Textura para atenuar el fondo
|
||||
SDL_Texture *canvas; // Textura para componer el fondo
|
||||
SDL_Texture *colorTexture; // Textura para atenuar el fondo
|
||||
|
||||
param_t *param; // Puntero con todos los parametros del programa
|
||||
param_t *param; // Puntero con todos los parametros del programa
|
||||
|
||||
// Variables
|
||||
SDL_Rect gradientRect[4]; // Vector con las coordenadas de los 4 degradados para el cielo
|
||||
int gradientNumber; // Indica el número de degradado de fondo que se va a dibujar
|
||||
int alpha; // Transparencia entre los dos degradados
|
||||
float cloudsSpeed; // Velocidad a la que se desplazan las nubes
|
||||
float transition; // Nivel de transición del fondo 0..1
|
||||
int counter; // Contador interno
|
||||
SDL_Rect rect; // Tamaño del objeto fondo
|
||||
SDL_Rect srcRect; // Parte del objeto fondo que se va a dibujará en pantalla
|
||||
SDL_Rect dstRect; // Posición donde dibujar la parte del objeto fondo que se dibujará en pantalla
|
||||
int base; // Linea de fondo coincidente con el area inferior de la zona de juego
|
||||
color_t color; // Color para atenuar el fondo
|
||||
int alphaColorText; // Alpha para atenuar el fondo
|
||||
int alphaColorTextTemp; // Valor temporal para hacer la transición de alpha
|
||||
// Variables
|
||||
SDL_Rect gradientRect[4]; // Vector con las coordenadas de los 4 degradados para el cielo
|
||||
SDL_Rect topCloudsRect[4]; // Vector con las coordenadas de los 4 nubes de arriba
|
||||
SDL_Rect bottomCloudsRect[4]; // Vector con las coordenadas de los 4 nubes de abajo
|
||||
int gradientNumber; // Indica el número de degradado de fondo que se va a dibujar
|
||||
int alpha; // Transparencia entre los dos degradados
|
||||
float cloudsSpeed; // Velocidad a la que se desplazan las nubes
|
||||
float transition; // Nivel de transición del fondo 0..1
|
||||
int counter; // Contador interno
|
||||
SDL_Rect rect; // Tamaño del objeto fondo
|
||||
SDL_Rect srcRect; // Parte del objeto fondo que se va a dibujará en pantalla
|
||||
SDL_Rect dstRect; // Posición donde dibujar la parte del objeto fondo que se dibujará en pantalla
|
||||
int base; // Linea de fondo coincidente con el area inferior de la zona de juego
|
||||
color_t color; // Color para atenuar el fondo
|
||||
int alphaColorText; // Alpha para atenuar el fondo
|
||||
int alphaColorTextTemp; // Valor temporal para hacer la transición de alpha
|
||||
|
||||
// Compone todos los elementos del fondo en la textura
|
||||
void fillCanvas();
|
||||
// Dibuja el gradiente de fondo
|
||||
void renderGradient();
|
||||
|
||||
// Actualiza el valor de alpha
|
||||
void updateAlphaColorText();
|
||||
// Dibuja las nubes de arriba
|
||||
void renderTopClouds();
|
||||
|
||||
// Actualiza las nubes
|
||||
void updateCLouds();
|
||||
// Dibuja las nubes de abajo
|
||||
void renderBottomClouds();
|
||||
|
||||
// Compone todos los elementos del fondo en la textura
|
||||
void fillCanvas();
|
||||
|
||||
// Actualiza el valor de alpha
|
||||
void updateAlphaColorText();
|
||||
|
||||
// Actualiza las nubes
|
||||
void updateClouds();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Background(SDL_Renderer *renderer, Screen *screen, Asset *asset, param_t *param);
|
||||
// Constructor
|
||||
Background(SDL_Renderer *renderer, Asset *asset, param_t *param);
|
||||
|
||||
// Destructor
|
||||
~Background();
|
||||
// Destructor
|
||||
~Background();
|
||||
|
||||
// Actualiza la lógica del objeto
|
||||
void update();
|
||||
// Actualiza la lógica del objeto
|
||||
void update();
|
||||
|
||||
// Dibuja el objeto
|
||||
void render();
|
||||
// Dibuja el objeto
|
||||
void render();
|
||||
|
||||
// Establece la posición del objeto
|
||||
void setPos(SDL_Rect);
|
||||
// Establece la posición del objeto
|
||||
void setPos(SDL_Rect);
|
||||
|
||||
// Vuelve a cargar las texturas
|
||||
void reloadTextures();
|
||||
// Vuelve a cargar las texturas
|
||||
void reloadTextures();
|
||||
|
||||
// Ajusta el valor de la variable
|
||||
void setCloudsSpeed(float value);
|
||||
// Ajusta el valor de la variable
|
||||
void setCloudsSpeed(float value);
|
||||
|
||||
// Ajusta el valor de la variable
|
||||
void setGradientNumber(int value);
|
||||
// Ajusta el valor de la variable
|
||||
void setGradientNumber(int value);
|
||||
|
||||
// Ajusta el valor de la variable
|
||||
void setTransition(float value);
|
||||
// Ajusta el valor de la variable
|
||||
void setTransition(float value);
|
||||
|
||||
// Ajusta el valor de la variable
|
||||
void setSrcRect(SDL_Rect value);
|
||||
// Ajusta el valor de la variable
|
||||
void setSrcRect(SDL_Rect value);
|
||||
|
||||
// Ajusta el valor de la variable
|
||||
void setDstRect(SDL_Rect value);
|
||||
// Ajusta el valor de la variable
|
||||
void setDstRect(SDL_Rect value);
|
||||
|
||||
// Establece el color de atenuación
|
||||
void setColor(color_t color);
|
||||
// Establece el color de atenuación
|
||||
void setColor(color_t color);
|
||||
|
||||
// Establece la transparencia de la atenuación
|
||||
void setAlpha(int alpha);
|
||||
// Establece la transparencia de la atenuación
|
||||
void setAlpha(int alpha);
|
||||
};
|
||||
Reference in New Issue
Block a user