Adaptacion a tamanio de pantalla

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