La magia de los punteros

parent abb24053
No preview for this file type
...@@ -25,5 +25,5 @@ bool Objeto::interactuar(Handle& handle){ ...@@ -25,5 +25,5 @@ bool Objeto::interactuar(Handle& handle){
bool Objeto::colisionaObjeto(int x, int z){ bool Objeto::colisionaObjeto(int x, int z){
return colision.colisiona(x,y); return colision.colisiona(x,z);
} }
\ No newline at end of file
...@@ -12,21 +12,21 @@ PantallaFecha::PantallaFecha() : ...@@ -12,21 +12,21 @@ PantallaFecha::PantallaFecha() :
carne(Sprite("assets/carneNombre.png"),Sprite("assets/carneNombre.png"),Sprite("assets/carneNombre.png"),Hitbox(0,0,0,0),0,0,0,0,normal,nullptr), carne(Sprite("assets/carneNombre.png"),Sprite("assets/carneNombre.png"),Sprite("assets/carneNombre.png"),Hitbox(0,0,0,0),0,0,0,0,normal,nullptr),
botonesArriba{ botonesArriba{
Objeto(Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Sprite("assets/flechaArriba.jpg"),Hitbox(0,0,0,0),300,200,200,100,normal,nullptr), 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(0,0,0,0),600,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(0,0,0,0),1050,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(0,0,0,0),1325,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)
}, },
botonesAbajo{ botonesAbajo{
Objeto(Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Sprite("assets/flechaAbajo.jpg"),Hitbox(0,0,0,0),300,600,200,100,normal,nullptr), 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(0,0,0,0),600,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(0,0,0,0),1050,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(0,0,0,0),1325,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)
}, },
combinacionBuena{1,3,0,3}, combinacionBuena{1,3,0,3},
combinacionActual{0,0,0,0} combinacionActual{0,0,0,0}
{ {
} }
void PantallaFecha::manejarEntrada(Handle &handle) { void PantallaFecha::manejarEntrada(Handle &handle) {
...@@ -47,16 +47,16 @@ void PantallaFecha::manejarEntrada(Handle &handle) { ...@@ -47,16 +47,16 @@ void PantallaFecha::manejarEntrada(Handle &handle) {
SDL_GetMouseState(&xRaton, &zRaton); SDL_GetMouseState(&xRaton, &zRaton);
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;
int contadorCorrectos=0; int contadorCorrectos=0;
for(int i=0;i<4;i++){ for(int i=0;i<4;i++){
if(botonesArriba[i].colisionaObjeto(xRaton, zRaton)){ if(botonesArriba[i].colisionaObjeto(xRaton, zRaton)){
combinacionActual[i]=(combinacionActual[i]+1)%10; combinacionActual[i]=(combinacionActual[i]+1)%10;
} }
if(botonesAbajo[i].colisionaObjeto(xRaton, zRaton)){ if(botonesAbajo[i].colisionaObjeto(xRaton, zRaton)){
if(combinacionActual[i]==0){ if(combinacionActual[i]==0){
combinacionActual[i]=9; combinacionActual[i]=9;
}else{ }else{
combinacionActual[i]=combinacionActual[i]-1; combinacionActual[i]=combinacionActual[i]-1;
} }
...@@ -64,7 +64,8 @@ void PantallaFecha::manejarEntrada(Handle &handle) { ...@@ -64,7 +64,8 @@ void PantallaFecha::manejarEntrada(Handle &handle) {
if(combinacionActual[i]==combinacionBuena[i]) contadorCorrectos++; if(combinacionActual[i]==combinacionBuena[i]) contadorCorrectos++;
} }
if(contadorCorrectos==4){ if(contadorCorrectos==4){
historiaPrincipal.pasarDeEstadoA(Historia::CalendarioQuitado,Historia::PuzlePantallaResuelto);
handle.removeme();
} }
} }
break; break;
...@@ -75,29 +76,27 @@ void PantallaFecha::manejarEntrada(Handle &handle) { ...@@ -75,29 +76,27 @@ void PantallaFecha::manejarEntrada(Handle &handle) {
} }
void PantallaFecha::renderizar(SDL_Renderer *renderer, int tamx, int tamy) { void PantallaFecha::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);
for(int i=0;i<4;i++){ for(int i=0;i<4;i++){
botonesAbajo[i].renderizar(renderer, tamx, tamy); botonesAbajo[i].renderizar(renderer, tamx, tamy);
botonesArriba[i].renderizar(renderer,tamx,tamy); botonesArriba[i].renderizar(renderer,tamx,tamy);
if(AgapitoTieneCarne){
carne.renderizar(renderer,tamx,tamy);
}
Texto num1(fuente1,std::to_string(combinacionActual[0]).c_str(),{0,0,0});
Texto num2(fuente1,std::to_string(combinacionActual[1]).c_str(),{0,0,0});
Texto num3(fuente1,std::to_string(combinacionActual[2]).c_str(),{0,0,0});
Texto num4(fuente1,std::to_string(combinacionActual[3]).c_str(),{0,0,0});
num1.renderizar(renderer,375,300,tamx,tamy);
num2.renderizar(renderer,675,300,tamx,tamy);
num3.renderizar(renderer,1125,300,tamx,tamy);
num4.renderizar(renderer,1400,300,tamx,tamy);
} }
if(AgapitoTieneCarne){
carne.renderizar(renderer,tamx,tamy);
}
Texto num1(fuente1,std::to_string(combinacionActual[0]).c_str(),{0,0,0});
Texto num2(fuente1,std::to_string(combinacionActual[1]).c_str(),{0,0,0});
Texto num3(fuente1,std::to_string(combinacionActual[2]).c_str(),{0,0,0});
Texto num4(fuente1,std::to_string(combinacionActual[3]).c_str(),{0,0,0});
num1.renderizar(renderer,375,300,tamx,tamy);
num2.renderizar(renderer,675,300,tamx,tamy);
num3.renderizar(renderer,1125,300,tamx,tamy);
num4.renderizar(renderer,1400,300,tamx,tamy);
} }
...@@ -14,7 +14,7 @@ SDL_Texture *Texto::get_textura(SDL_Renderer *renderer) { ...@@ -14,7 +14,7 @@ SDL_Texture *Texto::get_textura(SDL_Renderer *renderer) {
SDL_Surface *Texto::get_surface() { SDL_Surface *Texto::get_surface() {
if (surface == nullptr) { if (surface == nullptr) {
surface = TTF_RenderUTF8_Solid(*fuente, text, fg); surface = TTF_RenderUTF8_Solid(*fuente, text.c_str(), fg);
if (surface == nullptr) { if (surface == nullptr) {
throw std::runtime_error(SDL_GetError()); throw std::runtime_error(SDL_GetError());
} }
......
...@@ -5,10 +5,11 @@ ...@@ -5,10 +5,11 @@
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#include <SDL2/SDL_surface.h> #include <SDL2/SDL_surface.h>
#include <SDL2/SDL_ttf.h> #include <SDL2/SDL_ttf.h>
#include <iostream>
class Texto { class Texto {
Fuente fuente; Fuente fuente;
const char *text; std::string text;
SDL_Color fg; SDL_Color fg;
SDL_Surface *surface = nullptr; SDL_Surface *surface = nullptr;
......
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