Codigo de sprites y objetos combinables con redundancia eliminados

parent d299315c
No preview for this file type
......@@ -7,7 +7,7 @@
#include "Sprite.h"
#include "Hitbox.h"
#include "Video.h"
#include "ObjetoCombinable.h"
void Historia::limpiarEstado(){
for(int i=0;i<colPantallas.size();i++){
......@@ -21,7 +21,7 @@ static Objeto generarObjetoPantalla(bool (*funcion)(Objeto *, Handle&)) {
Sprite sprPantalla("assets/pantalla.png");
Hitbox hitPantalla(300,200,500,-1000000000);
Objeto Pantalla(sprPantalla,sprPantalla,sprPantalla,hitPantalla,0,150,300,300, normal,funcion);
Objeto Pantalla(sprPantalla,hitPantalla,0,150,300,300,funcion);
return Pantalla;
}
......@@ -30,7 +30,7 @@ static Objeto generarObjetoCalendario() {
Sprite sprCalendario("assets/calendario.png");
Hitbox hitCalendario(-100000,-200000,-10000,-1000000000); // (Hitbox inacesible)
Objeto Calendario(sprCalendario,sprCalendario,sprCalendario,hitCalendario,400,150,150,150, normal,nullptr);
Objeto Calendario(sprCalendario,hitCalendario,400,150,150,150,nullptr);
return Calendario;
}
......@@ -39,7 +39,7 @@ static Objeto generarObjetoCartera(bool (*funcion)(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, 150, normal, funcion);
Objeto Cartera(sprCartera, hitCartera, 400, 150, 150, 150, funcion);
return Cartera;
}
......@@ -52,7 +52,7 @@ static Objeto generarObjetoIman() {
historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::ImanSacado, Historia::Secuencia::LlaveConseguida);
return false;
};
Objeto Iman(sprIman, sprIman, sprIman, hitIman, 400, 150, 150, 150, normal, funcionIman);
Objeto Iman(sprIman, hitIman, 400, 150, 150, 150, funcionIman);
return Iman;
}
......@@ -64,7 +64,7 @@ static Objeto generarObjetoPuerta() {
};
Sprite sprPuerta("assets/sprInventado.png");
Hitbox hitPuerta(1000000,-10000000,350,0);
Objeto Puerta(sprPuerta,sprPuerta,sprPuerta,hitPuerta,0,0,0,0,normal,funcionPuerta);
Objeto Puerta(sprPuerta,hitPuerta,0,0,0,0,funcionPuerta);
return Puerta;
}
......@@ -72,7 +72,7 @@ static Objeto generarObjetoCarne() {
Sprite sprCarne("assets/carne.png");
Hitbox hitCarne(0, 0, 0, 0); // Trivial, solo esta en el inventario
Objeto Carne(sprCarne, sprCarne, sprCarne, hitCarne, 400, 150, 150, 150, normal, nullptr);
Objeto Carne(sprCarne, hitCarne, 400, 150, 150, 150, nullptr);
return Carne;
}
......@@ -174,7 +174,7 @@ static void iniciarPuzlePantallaResuelto(){
Sprite sprDestornillador("assets/destornillador.png");
Hitbox hitDestornillador(0,0,0,0);
Objeto destornillador(sprDestornillador,sprDestornillador,sprDestornillador,hitDestornillador,1200,700,50,70, normal,nullptr);
Objeto destornillador(sprDestornillador,hitDestornillador,1200,700,50,70,nullptr);
getPantalla1()->anadirObjeto(destornillador);
Sprite sprCaja("assets/caja.png");
......@@ -186,7 +186,7 @@ static void iniciarPuzlePantallaResuelto(){
};
Objeto caja(sprCaja,sprCaja,sprCaja,hitCaja,1250,700,220,180, normal,funcionCaja);
Objeto caja(sprCaja,hitCaja,1250,700,220,180,funcionCaja);
Objeto Puerta = generarObjetoPuerta();
getPantalla1()->anadirObjeto(caja);
getPantalla2()->anadirObjeto(Puerta);
......@@ -195,7 +195,7 @@ static void iniciarPuzlePantallaResuelto(){
static void iniciarCajaVista(){
Sprite sprDestornillador("assets/destornillador.png");
Hitbox hitDestornillador(0,0,0,0);
Objeto destornillador(sprDestornillador,sprDestornillador,sprDestornillador,hitDestornillador,1200,700,50,70, normal,nullptr);
Objeto destornillador(sprDestornillador,hitDestornillador,1200,700,50,70, nullptr);
getPantalla1()->anadirObjeto(destornillador);
Sprite sprCajon("assets/cajon.png");
......@@ -205,7 +205,7 @@ static void iniciarCajaVista(){
historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::CajaVista, Historia::Secuencia::CajaAbierta);
return false;
};
Objeto cajon(sprCajon,sprCajon,sprCajon,hitCajon,760,500,220,180, normal,funcionCajon);
Objeto cajon(sprCajon,hitCajon,760,500,220,180,funcionCajon);
getPantalla1()->anadirObjeto(cajon);
Sprite sprCaja("assets/caja.png");
......@@ -214,7 +214,7 @@ static void iniciarCajaVista(){
play_video("assets/NoPuedoAbrirCaja","es");
return false;
};
Objeto caja(sprCaja,sprCaja,sprCaja,hitCaja,1250,700,220,180, normal,funcionCaja);
Objeto caja(sprCaja,hitCaja,1250,700,220,180,funcionCaja);
Objeto Puerta = generarObjetoPuerta();
getPantalla1()->anadirObjeto(caja);
getPantalla2()->anadirObjeto(Puerta);
......@@ -232,7 +232,7 @@ static void iniciarCajaAbierta(){
historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::CajaAbierta, Historia::Secuencia::LlaveVista);
return false;
};
Objeto llave(sprLlave,sprLlave,sprLlave,hitLlave,100,150,50,50, normal,funcionLlave);
Objeto llave(sprLlave,hitLlave,100,150,50,50,funcionLlave);
getPantalla1()->anadirObjeto(llave);
......@@ -241,7 +241,7 @@ static void iniciarCajaAbierta(){
auto funcionCandado=[](Objeto *Candado, Handle &handle)->bool{
return false;
};
ObjetoCombinable candado(sprCandado, sprCandado, sprCandado, hitCandado, 400, 150, 150, 150, normal, funcionCandado);
Objeto candado(sprCandado, hitCandado, 400, 150, 150, 150, funcionCandado);
Agapito.setInventario(1) = candado;
}
......@@ -256,7 +256,7 @@ static void iniciarLlaveVista(){
play_video("assets/NoLlegoIman","es");
return false;
};
Objeto llave(sprLlave,sprLlave,sprLlave,hitLlave,100,150,50,50, normal,funcionLlave);
Objeto llave(sprLlave,hitLlave,100,150,50,50,funcionLlave);
getPantalla1()->anadirObjeto(llave);
......@@ -266,7 +266,7 @@ static void iniciarLlaveVista(){
handle.addPantalla(getPantallaCama());
return false;
};
Objeto cama(sprCama,sprCama,sprCama,hitCama,950,500,250,400, normal,funcionCama);
Objeto cama(sprCama,hitCama,950,500,250,400, funcionCama);
getPantalla1()->anadirObjeto(llave);
getPantalla1()->anadirObjeto(cama);
......@@ -274,16 +274,14 @@ static void iniciarLlaveVista(){
Hitbox hitCandado(0, 0, 0, 0); // Trivial, solo esta en el inventario
auto funcionCandado=[](Objeto *Candado, Handle &handle)->bool{
if(historiaPrincipal.getEstadoActual()==Historia::Secuencia::LlaveConseguida){
((ObjetoCombinable*) Candado)->setPulsado(true);
if(((ObjetoCombinable&) Agapito.getInventario(0).value()).getPulsado()){
play_video("assets/Salida","es");
handle.reemplazamePor(colPantallas[6]);
}
}
return false;
};
ObjetoCombinable candado(sprCandado, sprCandado, sprCandado, hitCandado, 400, 150, 150, 150, normal, funcionCandado);
Objeto candado(sprCandado, hitCandado, 400, 150, 150, 150, funcionCandado);
Agapito.setInventario(1) = candado;
}
......@@ -298,7 +296,7 @@ static void iniciarCarteraRecuperada(){
play_video("assets/NoLlegoIman","es");
return false;
};
Objeto llave(sprLlave,sprLlave,sprLlave,hitLlave,100,150,50,50, normal,funcionLlave);
Objeto llave(sprLlave,hitLlave,100,150,50,50,funcionLlave);
getPantalla1()->anadirObjeto(llave);
auto funcionCartera=[](Objeto *Pantalla, Handle &handle) -> bool {
historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::CarteraRecuperada, Historia::Secuencia::ImanSacado);
......@@ -323,7 +321,7 @@ static void iniciarImanSacado(){
historiaPrincipal.pasarDeEstadoA(Historia::Secuencia::ImanSacado, Historia::Secuencia::LlaveConseguida);
return false;
};
Objeto llave(sprLlave,sprLlave,sprLlave,hitLlave,100,150,50,50, normal,funcionLlave);
Objeto llave(sprLlave,hitLlave,100,150,50,50,funcionLlave);
getPantalla1()->anadirObjeto(llave);
}
......@@ -335,15 +333,12 @@ static void iniciarLlaveConseguida(){
Sprite sprLlave("assets/llaveNormal.png");
Hitbox hitLlave(0, 0, 0, 0); // Trivial, solo esta en el inventario
auto funcionLlave=[](Objeto *Llave, Handle &handle)->bool{
((ObjetoCombinable*) Llave)->setPulsado(true);
if(((ObjetoCombinable&) Agapito.getInventario(1).value()).getPulsado()){
play_video("assets/Salida","es");
handle.reemplazamePor(colPantallas[6]);
}
return false;
};
Objeto llave(sprLlave, sprLlave, sprLlave, hitLlave, 400, 150, 150, 150, normal, funcionLlave);
Objeto llave(sprLlave,hitLlave, 400, 150, 150, 150,funcionLlave);
Agapito.setInventario(0) = llave;
}
......
......@@ -5,18 +5,7 @@ Hitbox & Objeto::getHitbox(){
}
void Objeto::renderizar(SDL_Renderer *renderer, int tamx, int tamy){
std::cout<<"Buenos dias, soy el objeto y mi estado es " << estado<<std::endl;
switch (estado){
case normal:
sprite_normal.renderizar(renderer,x,y,w,h, tamx, tamy);
break;
case overworld:
sprite_overworld.renderizar(renderer,x,y,w,h, tamx, tamy);
break;
case overworld_highlight:
sprite_overworld_highlight.renderizar(renderer,x,y,w,h, tamx, tamy);
break;
}
}
bool Objeto::interactuar(Handle& handle){
......
......@@ -5,17 +5,10 @@
#include <iostream>
enum State {
normal = 0,
overworld = 1,
overworld_highlight = 2
};
class Objeto {
Sprite sprite_normal;
Sprite sprite_overworld;
Sprite sprite_overworld_highlight;
Hitbox colision;
State estado=normal;
int x;
int y;
int w;
......@@ -25,14 +18,11 @@ class Objeto {
public:
Hitbox &getHitbox();
Objeto(Sprite sprite_normal_, Sprite sprite_overworld_, Sprite sprite_overworld_highlight_, Hitbox colision_, int _x, int _y, int _w, int _h, State estado_, bool (*_funcionInteraccion)(Objeto*, Handle&)):
sprite_normal(sprite_normal_), sprite_overworld(sprite_overworld_),
sprite_overworld_highlight(sprite_overworld_highlight_), colision(colision_), x(_x), y(_y), w(_w), h(_h), estado(estado_), funcionInteraccion(_funcionInteraccion){}
Objeto(Sprite sprite_normal_, Hitbox colision_, int _x, int _y, int _w, int _h, bool (*_funcionInteraccion)(Objeto*, Handle&)):
sprite_normal(sprite_normal_), colision(colision_), x(_x), y(_y), w(_w), h(_h), funcionInteraccion(_funcionInteraccion){}
void renderizar(SDL_Renderer *renderer, int tamx, int tamy);
void setEstado(State estado_){estado=estado_;}
State getEstado(){return estado;}
void setX(int x) {
this->x = x;
......
......@@ -8,8 +8,8 @@ PantallaCama::PantallaCama() :
fuente1("assets/OpenSans-Italic.ttf", 100),
Fondo1("assets/puzleMover.jpeg"),
atras(Sprite("assets/volver.png"),Sprite("assets/volver.png"),Sprite("assets/volver.png"),Hitbox(1800,1600,300,200),1600,200,100,100,normal,nullptr),
reiniciar(Sprite("assets/reiniciar.png"),Sprite("assets/reiniciar.png"),Sprite("assets/reiniciar.png"),Hitbox(1700,1600,500,400),1600,400,100,100,normal,nullptr),
atras(Sprite("assets/volver.png"),Hitbox(1800,1600,300,200),1600,200,100,100,nullptr),
reiniciar(Sprite("assets/reiniciar.png"),Hitbox(1700,1600,500,400),1600,400,100,100,nullptr),
cartera("assets/cartera.png"),
obstaculos{
Sprite("assets/nuez.png"),
......
......@@ -9,19 +9,19 @@ PantallaFecha::PantallaFecha() :
Fondo1("assets/pantallaPantalla.png"),
Carne("assets/carneNombre.png"),
atras(Sprite("assets/volver.png"),Sprite("assets/volver.png"),Sprite("assets/volver.png"),Hitbox(1800,1600,300,200),1600,200,100,100,normal,nullptr),
atras(Sprite("assets/volver.png"),Hitbox(1800,1600,300,200),1600,200,100,100,nullptr),
botonesArriba{
Objeto(Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Hitbox(500,300,300,200),300,200,200,100,normal,nullptr),
Objeto(Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Hitbox(800,600,300,200),600,200,200,100,normal,nullptr),
Objeto(Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Hitbox(1250,1050,300,200),1050,200,200,100,normal,nullptr),
Objeto(Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Hitbox(1525,1325,300,200),1325,200,200,100,normal,nullptr)
Objeto(Sprite("assets/flechaArriba.jpg"),Hitbox(500,300,300,200),300,200,200,100,nullptr),
Objeto(Sprite("assets/flechaArriba.jpg"),Hitbox(800,600,300,200),600,200,200,100,nullptr),
Objeto(Sprite("assets/flechaArriba.jpg"),Hitbox(1250,1050,300,200),1050,200,200,100,nullptr),
Objeto(Sprite("assets/flechaArriba.jpg"),Hitbox(1525,1325,300,200),1325,200,200,100,nullptr)
},
botonesAbajo{
Objeto(Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Hitbox(500,300,700,600),300,600,200,100,normal,nullptr),
Objeto(Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Hitbox(800,600,700,600),600,600,200,100,normal,nullptr),
Objeto(Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Hitbox(1250,1050,700,600),1050,600,200,100,normal,nullptr),
Objeto(Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Hitbox(1525,1325,700,600),1325,600,200,100,normal,nullptr)
Objeto(Sprite("assets/flechaAbajo.jpg"),Hitbox(500,300,700,600),300,600,200,100,nullptr),
Objeto(Sprite("assets/flechaAbajo.jpg"),Hitbox(800,600,700,600),600,600,200,100,nullptr),
Objeto(Sprite("assets/flechaAbajo.jpg"),Hitbox(1250,1050,700,600),1050,600,200,100,nullptr),
Objeto(Sprite("assets/flechaAbajo.jpg"),Hitbox(1525,1325,700,600),1325,600,200,100,nullptr)
},
combinacionBuena{1,3,0,3},
combinacionActual{0,0,0,0},
......
......@@ -18,7 +18,7 @@ PantallaInicio::PantallaInicio() :
Hitbox hitIniciarPartida(1247,649,699,501);
Objeto IniciarPartida(sprIniciarPartida,sprIniciarPartida,sprIniciarPartida,hitIniciarPartida,650,500,600,200,normal,nullptr);
Objeto IniciarPartida(sprIniciarPartida,hitIniciarPartida,650,500,600,200,nullptr);
objetos.push_back(IniciarPartida);
......
......@@ -15,7 +15,7 @@ PantallaTutorial::PantallaTutorial() :
Hitbox hitIniciarPartida(997,400,898,699);
Objeto IniciarPartida(sprIniciarPartida,sprIniciarPartida,sprIniciarPartida,hitIniciarPartida,400,700,600,200,normal,nullptr);
Objeto IniciarPartida(sprIniciarPartida,hitIniciarPartida,400,700,600,200,nullptr);
objetos.push_back(IniciarPartida);
......
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