Los objetos del inventario se renderizan.

parent aee9c1da
No preview for this file type
...@@ -32,4 +32,12 @@ public: ...@@ -32,4 +32,12 @@ public:
void setEstado(State estado_){estado=estado_;} void setEstado(State estado_){estado=estado_;}
State getEstado(){return estado;} State getEstado(){return estado;}
void setX(int x) {
this->x = x;
}
void setY(int y) {
this->y = y;
}
}; };
...@@ -89,6 +89,7 @@ void PantallaPrincipal::manejarEntrada(Handle &handle) { ...@@ -89,6 +89,7 @@ void PantallaPrincipal::manejarEntrada(Handle &handle) {
cout<<"Raton x "<<xRaton<<" Raton z "<<zRaton<<endl; cout<<"Raton x "<<xRaton<<" Raton z "<<zRaton<<endl;
if(colisionesInterfaz[0].colisiona(xRaton, zRaton) && objetos[indice_ojo].getEstado()==overworld){ if(colisionesInterfaz[0].colisiona(xRaton, zRaton) && objetos[indice_ojo].getEstado()==overworld){
Agapito.inventario[Agapito.numObjetos]=objetos[2]; Agapito.inventario[Agapito.numObjetos]=objetos[2];
Agapito.numObjetos++;
objetos.pop_back(); objetos.pop_back();
} }
} }
...@@ -110,6 +111,8 @@ void PantallaPrincipal::renderizar(SDL_Renderer *renderer, int tamx, int tamy) { ...@@ -110,6 +111,8 @@ void PantallaPrincipal::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
objetos[i].renderizar(renderer, tamx, tamy); objetos[i].renderizar(renderer, tamx, tamy);
} }
Agapito.renderizar_inventario(renderer, tamx, tamy);
texto.renderizar(renderer, 50, 50, tamx, tamy); texto.renderizar(renderer, 50, 50, tamx, tamy);
} }
...@@ -55,6 +55,16 @@ void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) { ...@@ -55,6 +55,16 @@ void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
movimientos[estado][indice_movimiento].renderizar(renderer, x, 100, profundidades, profundidades, tamx, tamy, true); movimientos[estado][indice_movimiento].renderizar(renderer, x, 100, profundidades, profundidades, tamx, tamy, true);
} }
void Personaje::renderizar_inventario(SDL_Renderer *renderer, int tamx, int tamy) {
for (int i = 0; i < numObjetos; i++) {
inventario[i]->setX(50 + i * 325);
inventario[i]->setY(800);
inventario[i]->renderizar(renderer, tamx, tamy);
}
}
void Personaje::comprobarColision(Hitbox &hitbox){ void Personaje::comprobarColision(Hitbox &hitbox){
if(hitbox.colisiona(x, profundidades)){ if(hitbox.colisiona(x, profundidades)){
switch (estado) { switch (estado) {
......
...@@ -29,18 +29,20 @@ class Personaje { ...@@ -29,18 +29,20 @@ class Personaje {
int indice_movimiento = 0; int indice_movimiento = 0;
int x = -100;
int profundidades = 600;
public: public:
array<optional<Objeto>, 3> inventario; array<optional<Objeto>, 3> inventario;
int numObjetos=0; int numObjetos=0;
int x = -100;
int profundidades = 600;
Personaje(); Personaje();
void move(Facing direcion); void move(Facing direcion);
void renderizar(SDL_Renderer *renderer, int tamx, int tamy); void renderizar(SDL_Renderer *renderer, int tamx, int tamy);
void renderizar_inventario(SDL_Renderer *renderer, int tamx, int tamy);
void comprobarColision (Hitbox &hitbox); void comprobarColision (Hitbox &hitbox);
......
...@@ -6,6 +6,11 @@ Sprite::Sprite(std::string camino) : camino(camino) { ...@@ -6,6 +6,11 @@ Sprite::Sprite(std::string camino) : camino(camino) {
} }
Sprite::Sprite(const Sprite &other) : camino(other.camino) {
}
SDL_Texture *Sprite::get_textura(SDL_Renderer *Renderer) { SDL_Texture *Sprite::get_textura(SDL_Renderer *Renderer) {
if (this->texture == nullptr) { if (this->texture == nullptr) {
this->texture = IMG_LoadTexture(Renderer, camino.c_str()); this->texture = IMG_LoadTexture(Renderer, camino.c_str());
......
...@@ -14,6 +14,8 @@ class Sprite { ...@@ -14,6 +14,8 @@ class Sprite {
public: public:
Sprite(std::string camino); Sprite(std::string camino);
Sprite(const Sprite &other);
void renderizar(SDL_Renderer *Renderer, int x, int y, int w, int h, int tamx, int tamy,bool centrar = false); void renderizar(SDL_Renderer *Renderer, int x, int y, int w, int h, int tamx, int tamy,bool centrar = false);
~Sprite(); ~Sprite();
......
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