Commit aee9c1da by Jaime de la Chica Bergillos

Trabajo unificado de hitboxes

parents 831be9e1 3b2ddebe
No preview for this file type
...@@ -31,4 +31,5 @@ public: ...@@ -31,4 +31,5 @@ public:
void renderizar(SDL_Renderer *renderer, int tamx, int tamy); void renderizar(SDL_Renderer *renderer, int tamx, int tamy);
void setEstado(State estado_){estado=estado_;} void setEstado(State estado_){estado=estado_;}
State getEstado(){return estado;}
}; };
...@@ -10,22 +10,39 @@ PantallaPrincipal::PantallaPrincipal() : ...@@ -10,22 +10,39 @@ PantallaPrincipal::PantallaPrincipal() :
Sprite sprOjoCerrado("assets/ojoCerrado.png"); Sprite sprOjoCerrado("assets/ojoCerrado.png");
Hitbox hitPlanta(0,-10,1200,-1000000000); Hitbox hitPlanta(0,-10,1200,-1000000000);
Hitbox hitInterfaz(1920,0,900,700); Hitbox hitInterfaz(1920,0,900,700);
Hitbox hitCama(10,50,300,300);
Hitbox hitFondo(1000000,-10000000,50,0);
Hitbox hitOjo(1630,1248,997,839); Hitbox hitOjo(1630,1248,997,839);
Objeto Ojo(sprOjoCerrado,sprOjoAbierto,sprOjoAbierto,hitOjo,1300,890,400,170,normal); Objeto Ojo(sprOjoCerrado,sprOjoAbierto,sprOjoAbierto,hitOjo,1300,890,400,170,normal);
Objeto Planta(sprPlanta,sprPlanta,sprPlanta,hitPlanta,1200,400,300,400, normal); Objeto Planta(sprPlanta,sprPlanta,sprPlanta,hitPlanta,1200,400,300,400, normal);
Objeto Interfaz(sprInterfaz,sprInterfaz,sprInterfaz,hitInterfaz,0,870,1920,216,normal); Objeto Interfaz(sprInterfaz,sprInterfaz,sprInterfaz,hitInterfaz,0,870,1920,216,normal);
Hitbox hitFondo(1000000,-10000000,550,0);
Hitbox hitCama(500, 0, 1200,-10000000);
Hitbox hitDer(510, 450, 10000000,-10000000);
Hitbox hitIzq(-800, -900, 10000000,-10000000);
objetos.push_back(Interfaz); objetos.push_back(Interfaz);
indice_ojo = objetos.size();
objetos.push_back(Ojo); objetos.push_back(Ojo);
objetos.push_back(Planta); objetos.push_back(Planta);
colisionesPasivas.push_back(hitPlanta); colisionesPasivas.push_back(hitPlanta);
colisionesActivas.push_back(hitCama);
colisionesActivas.push_back(hitFondo);
colisionesActivas.push_back(hitInterfaz);
colisionesInterfaz.push_back(hitOjo); colisionesInterfaz.push_back(hitOjo);
colisionesActivas.push_back(hitFondo);
colisionesActivas.push_back(hitCama);
colisionesActivas.push_back(hitDer);
colisionesActivas.push_back(hitIzq);
} }
void PantallaPrincipal::manejarEntrada(Handle &handle) { void PantallaPrincipal::manejarEntrada(Handle &handle) {
...@@ -54,12 +71,12 @@ void PantallaPrincipal::manejarEntrada(Handle &handle) { ...@@ -54,12 +71,12 @@ void PantallaPrincipal::manejarEntrada(Handle &handle) {
bool checkColision=false; bool checkColision=false;
int i=0; int i=0;
while(!checkColision && i<colisionesPasivas.size()){ while(!checkColision && i<colisionesPasivas.size()){
checkColision=Agapito.comprobarColisionPasiva(colisionesPasivas[i]); checkColision |= Agapito.comprobarColisionPasiva(colisionesPasivas[i]);
i++; i++;
} }
if(checkColision){ if(checkColision){
objetos[1].setEstado(overworld); objetos[indice_ojo].setEstado(overworld);
}else objetos[1].setEstado(normal); }else objetos[indice_ojo].setEstado(normal);
} }
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
...@@ -70,7 +87,7 @@ void PantallaPrincipal::manejarEntrada(Handle &handle) { ...@@ -70,7 +87,7 @@ void PantallaPrincipal::manejarEntrada(Handle &handle) {
xRaton*=(1920.0/handle.getTamX()); xRaton*=(1920.0/handle.getTamX());
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) && objetos[indice_ojo].getEstado()==overworld){
Agapito.inventario[Agapito.numObjetos]=objetos[2]; Agapito.inventario[Agapito.numObjetos]=objetos[2];
objetos.pop_back(); objetos.pop_back();
} }
...@@ -87,11 +104,12 @@ void PantallaPrincipal::renderizar(SDL_Renderer *renderer, int tamx, int tamy) { ...@@ -87,11 +104,12 @@ void PantallaPrincipal::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
Fondo1.renderizar(renderer, 0, 0,1920,1080, tamx, tamy); Fondo1.renderizar(renderer, 0, 0,1920,1080, tamx, tamy);
Agapito.renderizar(renderer, tamx, tamy);
for(int i=0;i<objetos.size();i++){ for(int i=0;i<objetos.size();i++){
objetos[i].renderizar(renderer, tamx, tamy); objetos[i].renderizar(renderer, tamx, tamy);
} }
Agapito.renderizar(renderer, tamx, tamy);
texto.renderizar(renderer, 50, 50, tamx, tamy); texto.renderizar(renderer, 50, 50, tamx, tamy);
} }
...@@ -17,6 +17,8 @@ class PantallaPrincipal : public Pantalla { ...@@ -17,6 +17,8 @@ class PantallaPrincipal : public Pantalla {
Sprite Fondo1; Sprite Fondo1;
Personaje Agapito; Personaje Agapito;
int indice_ojo = 0;
public: public:
PantallaPrincipal(); PantallaPrincipal();
......
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