Creada la clase game_logo para gestionar el logo con el titulo del juego
This commit is contained in:
84
source/game_logo.h
Normal file
84
source/game_logo.h
Normal file
@@ -0,0 +1,84 @@
|
||||
#pragma once
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
#include "common/asset.h"
|
||||
#include "common/screen.h"
|
||||
#include "common/smartsprite.h"
|
||||
#include "common/jail_audio.h"
|
||||
#include "const.h"
|
||||
|
||||
#ifndef GAME_LOGO_H
|
||||
#define GAME_LOGO_H
|
||||
|
||||
// Clase GameLogo
|
||||
class GameLogo
|
||||
{
|
||||
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
|
||||
|
||||
Texture *dustTexture; // Textura con los graficos del polvo
|
||||
Texture *coffeeTexture; // Textura con los graficos de la palabra coffee
|
||||
Texture *crisisTexture; // Textura con los graficos de la plabra crisis
|
||||
|
||||
AnimatedSprite *dustBitmapL; // Sprite con la el polvo que aparece al colisionar el texto de la pantalla de titulo
|
||||
AnimatedSprite *dustBitmapR; // Sprite con la el polvo que aparece al colisionar el texto de la pantalla de titulo
|
||||
|
||||
SmartSprite *coffeeBitmap; // Sprite con la palabra COFFEE para la pantalla de titulo
|
||||
SmartSprite *crisisBitmap; // Sprite con la palabra CRISIS para la pantalla de titulo
|
||||
|
||||
// Variables
|
||||
int x; // Posición donde ddibujar a la clase
|
||||
int y; // Posición donde ddibujar a la clase
|
||||
JA_Sound_t *crashSound; // Sonido con el impacto del título
|
||||
|
||||
enum status_e
|
||||
{
|
||||
disabled,
|
||||
moving,
|
||||
shaking,
|
||||
finished
|
||||
} status; // Estado en el que se encuentra la clase
|
||||
|
||||
struct shake_t
|
||||
{
|
||||
int desp; // Pixels de desplazamiento para agitar la pantalla en el eje x
|
||||
int delay; // Retraso entre cada desplazamiento de la pantalla al agitarse
|
||||
int counter; // Contador para el retraso
|
||||
int lenght; // Cantidad de desplazamientos a realizar
|
||||
int remaining; // Cantidad de desplazamientos pendientes a realizar
|
||||
int origin; // Valor inicial de la pantalla para dejarla igual tras el desplazamiento
|
||||
} shake; // Estructura para generar el efecto de agitación
|
||||
|
||||
// Inicializa las variables
|
||||
void init();
|
||||
|
||||
// Calcula el desplazamiento vertical inicial
|
||||
int getInitialVerticalDesp();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
GameLogo(SDL_Renderer *renderer, Screen *screen, Asset *asset, int x, int y);
|
||||
|
||||
// Destructor
|
||||
~GameLogo();
|
||||
|
||||
// Pinta la clase en pantalla
|
||||
void render();
|
||||
|
||||
// Actualiza la lógica de la clase
|
||||
void update();
|
||||
|
||||
// Activa la clase
|
||||
void enable();
|
||||
|
||||
// Indica si ha terminado la animación
|
||||
bool hasFinished();
|
||||
|
||||
// Recarga las texturas
|
||||
void reLoad();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user