Adaptacion a tamanio de pantalla

parent 64d7c77c
No preview for this file type
...@@ -4,17 +4,17 @@ Hitbox & Objeto::getHitbox(){ ...@@ -4,17 +4,17 @@ Hitbox & Objeto::getHitbox(){
return colision; return colision;
} }
void Objeto::renderizar(SDL_Renderer *renderer){ void Objeto::renderizar(SDL_Renderer *renderer, int tamx, int tamy){
std::cout<<estado<<std::endl; std::cout<<estado<<std::endl;
switch (estado){ switch (estado){
case normal: case normal:
sprite_normal.renderizar(renderer,x,y,w,h); sprite_normal.renderizar(renderer,x,y,w,h, tamx, tamy);
break; break;
case overworld: case overworld:
sprite_overworld.renderizar(renderer,x,y,w,h); sprite_overworld.renderizar(renderer,x,y,w,h, tamx, tamy);
break; break;
case overworld_highlight: case overworld_highlight:
sprite_overworld_highlight.renderizar(renderer,x,y,w,h); sprite_overworld_highlight.renderizar(renderer,x,y,w,h, tamx, tamy);
break; break;
} }
} }
...@@ -28,5 +28,5 @@ public: ...@@ -28,5 +28,5 @@ public:
sprite_normal(sprite_normal_), sprite_overworld(sprite_overworld_), sprite_normal(sprite_normal_), sprite_overworld(sprite_overworld_),
sprite_overworld_highlight(sprite_overworld_highlight_), colision(colision_), x(_x), y(_y), w(_w), h(_h), estado(estado_){} sprite_overworld_highlight(sprite_overworld_highlight_), colision(colision_), x(_x), y(_y), w(_w), h(_h), estado(estado_){}
void renderizar(SDL_Renderer *renderer); void renderizar(SDL_Renderer *renderer, int tamx, int tamy);
}; };
...@@ -41,7 +41,7 @@ void Personaje::move(Facing direction) { ...@@ -41,7 +41,7 @@ void Personaje::move(Facing direction) {
} }
} }
void Personaje::renderizar(SDL_Renderer *renderer) { void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
auto now = std::chrono::system_clock::now(); auto now = std::chrono::system_clock::now();
auto tiempo_desde_ultimo_movimiento = now.time_since_epoch() - momento_ultimo_movimiento.time_since_epoch(); auto tiempo_desde_ultimo_movimiento = now.time_since_epoch() - momento_ultimo_movimiento.time_since_epoch();
...@@ -52,7 +52,7 @@ void Personaje::renderizar(SDL_Renderer *renderer) { ...@@ -52,7 +52,7 @@ void Personaje::renderizar(SDL_Renderer *renderer) {
indice_movimiento = 0; indice_movimiento = 0;
} }
movimientos[estado][indice_movimiento].renderizar(renderer, x, 100, profundidades, profundidades, true); movimientos[estado][indice_movimiento].renderizar(renderer, x, 100, profundidades, profundidades, tamx, tamy, true);
} }
void Personaje::comprobarColision(Hitbox &hitbox){ void Personaje::comprobarColision(Hitbox &hitbox){
......
...@@ -37,7 +37,7 @@ int x = 100; ...@@ -37,7 +37,7 @@ int x = 100;
void move(Facing direcion); void move(Facing direcion);
void renderizar(SDL_Renderer *renderer); void renderizar(SDL_Renderer *renderer, int tamx, int tamy);
void comprobarColision (Hitbox &hitbox); void comprobarColision (Hitbox &hitbox);
}; };
...@@ -16,17 +16,17 @@ SDL_Texture *Sprite::get_textura(SDL_Renderer *Renderer) { ...@@ -16,17 +16,17 @@ SDL_Texture *Sprite::get_textura(SDL_Renderer *Renderer) {
return texture; return texture;
} }
void Sprite::renderizar(SDL_Renderer *Renderer, int x, int y, int w, int h, bool centrar) { void Sprite::renderizar(SDL_Renderer *Renderer, int x, int y, int w, int h,int tamx, int tamy, bool centrar) {
printf("RENDER TEXTURA %s\n", camino.c_str()); printf("RENDER TEXTURA %s\n", camino.c_str());
texture = get_textura(Renderer); texture = get_textura(Renderer);
SDL_Rect Dest; SDL_Rect Dest;
Dest.x = x; Dest.x = x*(tamx/1920.0);
Dest.y = y; Dest.y = y*(tamy/1080.0);
Dest.w = w; Dest.w = w*(tamx/1920.0);
Dest.h = h; Dest.h = h*(tamy/1080.0);
if (centrar) { if (centrar) {
SDL_Rect TamTextura; SDL_Rect TamTextura;
......
...@@ -14,7 +14,7 @@ class Sprite { ...@@ -14,7 +14,7 @@ class Sprite {
public: public:
Sprite(std::string camino); Sprite(std::string camino);
void renderizar(SDL_Renderer *Renderer, int x, int y, int w, int h, 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();
}; };
......
...@@ -27,6 +27,13 @@ void cambiar_buffers(SDL_Renderer *renderer) { ...@@ -27,6 +27,13 @@ void cambiar_buffers(SDL_Renderer *renderer) {
int main(){ int main(){
int tamx=0;
int tamy=0;
if(SDL_Init(SDL_INIT_VIDEO) < 0){ if(SDL_Init(SDL_INIT_VIDEO) < 0){
std::cout << "Error at SDL_Init(SDL_INIT_VIDEO)"<<std::endl; std::cout << "Error at SDL_Init(SDL_INIT_VIDEO)"<<std::endl;
...@@ -48,6 +55,8 @@ int main(){ ...@@ -48,6 +55,8 @@ int main(){
0 0
); );
SDL_SetWindowFullscreen(Window,SDL_WINDOW_FULLSCREEN_DESKTOP);
if(!Window){ if(!Window){
std::cout << "Error creating window" << std::endl; std::cout << "Error creating window" << std::endl;
...@@ -87,6 +96,7 @@ int main(){ ...@@ -87,6 +96,7 @@ int main(){
SDL_Event event; SDL_Event event;
while (true) { while (true) {
SDL_GetWindowSize(Window,&tamx,&tamy);
while (SDL_PollEvent(&event)) { while (SDL_PollEvent(&event)) {
switch (event.type) { switch (event.type) {
case SDL_KEYDOWN: case SDL_KEYDOWN:
...@@ -104,7 +114,6 @@ int main(){ ...@@ -104,7 +114,6 @@ int main(){
Agapito.move(Frente); Agapito.move(Frente);
break; break;
} }
std::cout<<"Agapito "<<Agapito.x<<" "<<Agapito.profundidades<<std::endl;
for(int i=0;i<colisiones.size();i++){ for(int i=0;i<colisiones.size();i++){
Agapito.comprobarColision(*colisiones[i]); Agapito.comprobarColision(*colisiones[i]);
} }
...@@ -113,12 +122,12 @@ int main(){ ...@@ -113,12 +122,12 @@ int main(){
exit(0); exit(0);
} }
} }
std::cout<<"Dimensiones "<<tamx<<tamy<<endl;
Fondo1.renderizar(Renderer, 0, 0, 1920, 1080); Fondo1.renderizar(Renderer, 0, 0,1920,1080, tamx, tamy);
for(int i=0;i<objetos.size();i++){ for(int i=0;i<objetos.size();i++){
objetos[i]->renderizar(Renderer); objetos[i]->renderizar(Renderer, tamx, tamy);
} }
Agapito.renderizar(Renderer); Agapito.renderizar(Renderer, tamx, tamy);
cambiar_buffers(Renderer); cambiar_buffers(Renderer);
SDL_Delay(5); SDL_Delay(5);
} }
......
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