From 551d539fc2b4612683611a64f0e0a97a5244d8f3 Mon Sep 17 00:00:00 2001 From: miguel Date: Thu, 14 Sep 2017 09:14:30 +0200 Subject: added scaling support --- main.cpp | 78 +++++++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 55 insertions(+), 23 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 2d84d8f..f796cd0 100644 --- a/main.cpp +++ b/main.cpp @@ -128,13 +128,31 @@ void sdl_put_letter(SDL_Renderer *ren, SDL_Texture *tex,int x,int y, int w, int } -void sdl_put_str(SDL_Renderer *ren, SDL_Texture *tex,int x, int y,int size,std::string str,int r,int g, int b) +void sdl_put_str(SDL_Renderer *ren, SDL_Texture *tex,int x, int y,int size,std::string str,int r,int g, int b,int length,int win_width,int win_height,int which,int of) { + length++; + int max_char_width=win_width/length; + int max_char_height=max_char_width*10/8; + int char_width=max_char_width*size/10; + int char_height=max_char_height*size/10; + int pos=0; + x=(win_width-length*char_width)/2; + + if(y==-1) + { + y=win_height/2+(which-1)*max_char_height; + } + + + SDL_SetRenderDrawColor(ren, 40,40,40, 255); + SDL_Rect rect2={0,y-2,win_width,char_height+4}; + SDL_RenderFillRect(ren,&rect2); + for(char ch:str) { pos++; - sdl_put_letter(ren,tex,x+8*size*pos,y, 8*size,10*size, r,g,b, ch); + sdl_put_letter(ren,tex,x+char_width*pos,y, char_width,char_height, r,g,b, ch); } } @@ -183,6 +201,20 @@ int main(int, char**){ // init world LEVEL 1 World world(1); + + + + int show_tiles_back=6; + int show_tiles_front=10; + int show_tiles_size=20; + int show_tiles_vertical_move=12; + int show_tiles_max_height=800; + int show_tiles_water_level=-1; + + show_tiles_size=win_height/15; + show_tiles_back=win_width/show_tiles_size*0.25; + show_tiles_front=win_width/show_tiles_size*1; + while (!quit) { // calc delta and FPS @@ -211,6 +243,10 @@ int main(int, char**){ win_width=event.window.data1; win_height=event.window.data2; + show_tiles_size=win_height/15; + show_tiles_back=win_width/show_tiles_size*0.25; + show_tiles_front=win_width/show_tiles_size*1; +// while(show_tiles_size%20!=0)show_tiles_size--; } if (event.type==SDL_MOUSEBUTTONDOWN) @@ -218,7 +254,7 @@ int main(int, char**){ mouse_x=event.button.x; mouse_y=event.button.y; - world.mouseclick((mouse_x+50-world.player.x2)/100+world.player.x-5,10-mouse_y/100); + world.mouseclick((mouse_x+show_tiles_size/2-world.player.x2)/show_tiles_size+world.player.x-show_tiles_back,show_tiles_vertical_move-mouse_y/show_tiles_size); } @@ -241,26 +277,26 @@ int main(int, char**){ SDL_RenderClear(ren); // render visible area - for(int i=world.player.x-5;i=world.bricks.size())continue; - SDL_Rect rect={br*100-100*world.player.x2,(10-world.coins_pos[i])*100,100,100}; + SDL_Rect rect={tile_col*show_tiles_size-show_tiles_size*world.player.x2,(show_tiles_vertical_move-world.coins_pos[i])*show_tiles_size,show_tiles_size,show_tiles_size}; SDL_RenderCopy(ren,textures[2],NULL,&rect); for(int j=0;j