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,16 +12,16 @@ PantallaFecha::PantallaFecha() : ...@@ -12,16 +12,16 @@ 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}
...@@ -47,11 +47,11 @@ void PantallaFecha::manejarEntrada(Handle &handle) { ...@@ -47,11 +47,11 @@ 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){
...@@ -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,13 +76,13 @@ void PantallaFecha::manejarEntrada(Handle &handle) { ...@@ -75,13 +76,13 @@ 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){ if(AgapitoTieneCarne){
carne.renderizar(renderer,tamx,tamy); carne.renderizar(renderer,tamx,tamy);
} }
...@@ -97,7 +98,5 @@ void PantallaFecha::renderizar(SDL_Renderer *renderer, int tamx, int tamy) { ...@@ -97,7 +98,5 @@ void PantallaFecha::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
num3.renderizar(renderer,1125,300,tamx,tamy); num3.renderizar(renderer,1125,300,tamx,tamy);
num4.renderizar(renderer,1400,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