Añadido cinematica calendario quitado y otras cosas

parent 7ac5d966
No preview for this file type
...@@ -34,6 +34,15 @@ static Objeto generarObjetoCalendario() { ...@@ -34,6 +34,15 @@ static Objeto generarObjetoCalendario() {
return Calendario; 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() { static void iniciarInicio() {
play_video("assets/Encerrado", "es"); play_video("assets/Encerrado", "es");
...@@ -48,9 +57,14 @@ static void iniciarInicio() { ...@@ -48,9 +57,14 @@ static void iniciarInicio() {
Objeto Calendario = generarObjetoCalendario(); Objeto Calendario = generarObjetoCalendario();
Objeto Cartera = generarObjectoCartera(nullptr);
getPantalla1()->anadirObjeto(Pantalla); getPantalla1()->anadirObjeto(Pantalla);
getPantalla1()->anadirObjeto(Calendario); getPantalla1()->anadirObjeto(Calendario);
Agapito.inventario[0] = Cartera;
Agapito.numObjetos = 1;
} }
...@@ -70,13 +84,11 @@ static void iniciarCalendarioVisto(){ ...@@ -70,13 +84,11 @@ static void iniciarCalendarioVisto(){
getPantalla1()->anadirObjeto(Calendario); getPantalla1()->anadirObjeto(Calendario);
auto funcionComprobarPantallaMinimizada = [] (Handle &handle) -> bool { auto funcionComprobarPantallaMinimizada = [] (Handle &handle) -> bool {
std::cout << "Calling hook" << std::endl;
if (handle.pantallaMinimizada()) { if (handle.pantallaMinimizada()) {
historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::CalendarioVisto, Historia::Secuencia::CalendarioQuitado); historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::CalendarioVisto, Historia::Secuencia::CalendarioQuitado);
std::cout << "Minimini" << std::endl; play_video("assets/CalendarioDesaparecido","es");
return true; return true;
} }
std::cout << "No minimini" << std::endl;
return false; return false;
}; };
...@@ -162,13 +174,13 @@ void Historia::siguienteEstado(Secuencia estado){ ...@@ -162,13 +174,13 @@ void Historia::siguienteEstado(Secuencia estado){
} }
} }
void Historia::pasarDeEstadoA(Secuencia estadoAnterior, Secuencia estadoPosterior){ void Historia::pasarDeEstadoA(Secuencia estadoAnterior, Secuencia estadoPosterior){
if(estadoAnterior==estadoActual){ if(estadoAnterior==estadoActual){
limpiarEstado(); limpiarEstado();
siguienteEstado(estadoPosterior); siguienteEstado(estadoPosterior);
estadoActual=estadoPosterior; estadoActual=estadoPosterior;
}
} }
}
Historia::Historia(){ Historia::Historia(){
siguienteEstado(estadoActual); siguienteEstado(estadoActual);
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
class Historia{ class Historia{
public: public:
enum Secuencia { enum Secuencia {
PreInicio,
Inicio, Inicio,
CalendarioVisto, CalendarioVisto,
CalendarioQuitado, CalendarioQuitado,
...@@ -16,7 +17,7 @@ class Historia{ ...@@ -16,7 +17,7 @@ class Historia{
}; };
private: private:
Secuencia estadoActual=CalendarioQuitado; Secuencia estadoActual=PreInicio;
void limpiarEstado(); void limpiarEstado();
void siguienteEstado(Secuencia estado); void siguienteEstado(Secuencia estado);
......
...@@ -25,6 +25,12 @@ PantallaInicio::PantallaInicio() : ...@@ -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) { void PantallaInicio::manejarEntrada(Handle &handle) {
SDL_Event event; SDL_Event event;
while (SDL_PollEvent(&event)) { while (SDL_PollEvent(&event)) {
...@@ -32,8 +38,7 @@ void PantallaInicio::manejarEntrada(Handle &handle) { ...@@ -32,8 +38,7 @@ void PantallaInicio::manejarEntrada(Handle &handle) {
case SDL_KEYDOWN: case SDL_KEYDOWN:
switch (event.key.keysym.sym) { switch (event.key.keysym.sym) {
case 13: case 13:
Cancion.pausar(); iniciar(handle);
handle.reemplazamePor(colPantallas[0]);
break; break;
} }
break; break;
...@@ -46,8 +51,7 @@ void PantallaInicio::manejarEntrada(Handle &handle) { ...@@ -46,8 +51,7 @@ void PantallaInicio::manejarEntrada(Handle &handle) {
zRaton*=(1080.0/handle.getTamY()); zRaton*=(1080.0/handle.getTamY());
cout<<"Raton x "<<xRaton<<" Raton z "<<zRaton<<endl; cout<<"Raton x "<<xRaton<<" Raton z "<<zRaton<<endl;
if(colisionesInterfaz[0].colisiona(xRaton, zRaton) ){ if(colisionesInterfaz[0].colisiona(xRaton, zRaton) ){
Cancion.pausar(); iniciar(handle);
handle.reemplazamePor(colPantallas[0]);
} }
} }
break; break;
......
...@@ -21,6 +21,7 @@ class PantallaInicio : public Pantalla { ...@@ -21,6 +21,7 @@ class PantallaInicio : public Pantalla {
Sonido Cancion; Sonido Cancion;
void iniciar(Handle &);
public: public:
PantallaInicio(); PantallaInicio();
...@@ -32,4 +33,4 @@ public: ...@@ -32,4 +33,4 @@ public:
bool transparente() override { bool transparente() override {
return false; return false;
}; };
}; };
\ No newline at end of file
...@@ -36,7 +36,7 @@ class Personaje { ...@@ -36,7 +36,7 @@ class Personaje {
public: public:
array<optional<Objeto>, 3> inventario; array<optional<Objeto>, 3> inventario;
int numObjetos=0; int numObjetos = 0;
Personaje(); 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