Añadido cinematica calendario quitado y otras cosas

parent 7ac5d966
No preview for this file type
......@@ -34,6 +34,15 @@ static Objeto generarObjetoCalendario() {
return Calendario;
}
static Objeto generarObjectoCartera(bool (*function)(Objeto *, Handle&)) {
Sprite sprCartera("assets/cartera.png");
Hitbox hitCartera(0, 0, 0, 0); // Trivial, solo esta en el inventario
Objeto Cartera(sprCartera, sprCartera, sprCartera, hitCartera, 400, 150, 150, 250, normal, nullptr);
return Cartera;
}
static void iniciarInicio() {
play_video("assets/Encerrado", "es");
......@@ -48,9 +57,14 @@ static void iniciarInicio() {
Objeto Calendario = generarObjetoCalendario();
Objeto Cartera = generarObjectoCartera(nullptr);
getPantalla1()->anadirObjeto(Pantalla);
getPantalla1()->anadirObjeto(Calendario);
Agapito.inventario[0] = Cartera;
Agapito.numObjetos = 1;
}
......@@ -70,13 +84,11 @@ static void iniciarCalendarioVisto(){
getPantalla1()->anadirObjeto(Calendario);
auto funcionComprobarPantallaMinimizada = [] (Handle &handle) -> bool {
std::cout << "Calling hook" << std::endl;
if (handle.pantallaMinimizada()) {
historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::CalendarioVisto, Historia::Secuencia::CalendarioQuitado);
std::cout << "Minimini" << std::endl;
play_video("assets/CalendarioDesaparecido","es");
return true;
}
std::cout << "No minimini" << std::endl;
return false;
};
......@@ -162,13 +174,13 @@ void Historia::siguienteEstado(Secuencia estado){
}
}
void Historia::pasarDeEstadoA(Secuencia estadoAnterior, Secuencia estadoPosterior){
if(estadoAnterior==estadoActual){
limpiarEstado();
siguienteEstado(estadoPosterior);
estadoActual=estadoPosterior;
}
void Historia::pasarDeEstadoA(Secuencia estadoAnterior, Secuencia estadoPosterior){
if(estadoAnterior==estadoActual){
limpiarEstado();
siguienteEstado(estadoPosterior);
estadoActual=estadoPosterior;
}
}
Historia::Historia(){
siguienteEstado(estadoActual);
......
......@@ -4,6 +4,7 @@
class Historia{
public:
enum Secuencia {
PreInicio,
Inicio,
CalendarioVisto,
CalendarioQuitado,
......@@ -16,7 +17,7 @@ class Historia{
};
private:
Secuencia estadoActual=CalendarioQuitado;
Secuencia estadoActual=PreInicio;
void limpiarEstado();
void siguienteEstado(Secuencia estado);
......
......@@ -25,6 +25,12 @@ PantallaInicio::PantallaInicio() :
}
void PantallaInicio::iniciar(Handle &handle) {
Cancion.pausar();
handle.reemplazamePor(colPantallas[0]);
historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::PreInicio, Historia::Secuencia::Inicio);
}
void PantallaInicio::manejarEntrada(Handle &handle) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
......@@ -32,8 +38,7 @@ void PantallaInicio::manejarEntrada(Handle &handle) {
case SDL_KEYDOWN:
switch (event.key.keysym.sym) {
case 13:
Cancion.pausar();
handle.reemplazamePor(colPantallas[0]);
iniciar(handle);
break;
}
break;
......@@ -46,8 +51,7 @@ void PantallaInicio::manejarEntrada(Handle &handle) {
zRaton*=(1080.0/handle.getTamY());
cout<<"Raton x "<<xRaton<<" Raton z "<<zRaton<<endl;
if(colisionesInterfaz[0].colisiona(xRaton, zRaton) ){
Cancion.pausar();
handle.reemplazamePor(colPantallas[0]);
iniciar(handle);
}
}
break;
......
......@@ -21,6 +21,7 @@ class PantallaInicio : public Pantalla {
Sonido Cancion;
void iniciar(Handle &);
public:
PantallaInicio();
......@@ -32,4 +33,4 @@ public:
bool transparente() override {
return false;
};
};
\ No newline at end of file
};
......@@ -36,7 +36,7 @@ class Personaje {
public:
array<optional<Objeto>, 3> inventario;
int numObjetos=0;
int numObjetos = 0;
Personaje();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment