El raton funciona

parent 8ccfc2d4
No preview for this file type
......@@ -32,7 +32,7 @@ void GestorPantallas::mainLoop(){
int tamy=0;
SDL_GetWindowSize(window,&tamx,&tamy);
Handle hand(*this,pantallas.size()-1);
Handle hand(*this,pantallas.size()-1,tamx,tamy);
pantallas.back()->manejarEntrada(hand);
int indice=pantallas.size()-1;
......
......@@ -15,13 +15,17 @@ using namespace std;
class Handle{
int idPantalla;
GestorPantallas &gestor;
int tamx;
int tamy;
friend GestorPantallas;
Handle(GestorPantallas &gest, int id): gestor(gest), idPantalla(id){};
Handle(GestorPantallas &gest, int id, int tamx_, int tamy_): gestor(gest), idPantalla(id), tamx(tamx_), tamy(tamy_){};
public:
void reemplazamePor(shared_ptr<Pantalla> );
void addPantalla(shared_ptr<Pantalla> );
void removeme();
void removeAll();
int getTamX(){return tamx;}
int getTamY(){return tamy;}
};
......
......@@ -8,11 +8,11 @@ PantallaPrincipal::PantallaPrincipal() :
Sprite sprInterfaz("assets/InterfazPrincipal.png");
Sprite sprOjoAbierto("assets/ojoAbierto.png");
Sprite sprOjoCerrado("assets/ojoCerrado.png");
Hitbox hitPlanta(350,80,450,120);
Hitbox hitPlanta(0,-10,1200,-1000000000);
Hitbox hitInterfaz(1920,0,900,700);
Hitbox hitCama(10,50,300,300);
Hitbox hitFondo(1000000,-10000000,50,0);
Hitbox hitOjo(1000000,-10000000,70,0);
Hitbox hitOjo(1630,1248,997,839);
Objeto Ojo(sprOjoCerrado,sprOjoAbierto,sprOjoAbierto,hitOjo,1300,890,400,170,normal);
Objeto Planta(sprPlanta,sprPlanta,sprPlanta,hitPlanta,1200,400,300,400, normal);
Objeto Interfaz(sprInterfaz,sprInterfaz,sprInterfaz,hitInterfaz,0,870,1920,216,normal);
......@@ -20,11 +20,11 @@ PantallaPrincipal::PantallaPrincipal() :
objetos.push_back(Interfaz);
objetos.push_back(Ojo);
objetos.push_back(Planta);
colisionesActivas.push_back(hitPlanta);
colisionesPasivas.push_back(hitPlanta);
colisionesActivas.push_back(hitCama);
colisionesActivas.push_back(hitFondo);
colisionesActivas.push_back(hitInterfaz);
colisionesPasivas.push_back(hitOjo);
colisionesInterfaz.push_back(hitOjo);
}
......@@ -62,6 +62,20 @@ void PantallaPrincipal::manejarEntrada(Handle &handle) {
}else objetos[1].setEstado(normal);
}
break;
case SDL_MOUSEBUTTONDOWN:
{
int xRaton=0;
int zRaton=0;
SDL_GetMouseState(&xRaton, &zRaton);
xRaton*=(1920.0/handle.getTamX());
zRaton*=(1080.0/handle.getTamY());
cout<<"Raton x "<<xRaton<<" Raton z "<<zRaton<<endl;
if(colisionesInterfaz[0].colisiona(xRaton, zRaton)){
Agapito.inventario[Agapito.numObjetos]=objetos[2];
objetos.pop_back();
}
}
break;
case SDL_QUIT:
handle.removeAll();
}
......
......@@ -12,6 +12,7 @@ class PantallaPrincipal : public Pantalla {
vector<Objeto> objetos;
vector<Hitbox> colisionesActivas;
vector<Hitbox> colisionesPasivas;
vector<Hitbox> colisionesInterfaz;
Fuente fuente1;
Sprite Fondo1;
Personaje Agapito;
......
......@@ -20,7 +20,7 @@ enum Facing {
typedef std::chrono::time_point<std::chrono::system_clock> Instant;
class Personaje {
array<optional<Objeto>, 3> inventario;
array<array<Sprite, 2>, 4> movimientos;
Instant momento_ultimo_movimiento = std::chrono::system_clock::now();
......@@ -30,7 +30,10 @@ class Personaje {
public:
array<optional<Objeto>, 3> inventario;
int numObjetos=0;
int x = -100;
int profundidades = 600;
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