diff --git a/settings.c b/settings.c index 48f84db..9459489 100644 --- a/settings.c +++ b/settings.c @@ -7,12 +7,12 @@ #include "settings.h" #define Slider_height 100 -#define Scalar_width 20 -#define Bar_width 400 -#define round(x) ((int) ((x) + .5)) +#define Scalar_width 20 +#define Bar_width 400 +#define round(x) ((int)((x) + .5)) -SDL_Texture* Settings_Texture; -SDL_Texture* Settings_Ball_Texture; +SDL_Texture * Settings_Texture; +SDL_Texture * Settings_Ball_Texture; SDL_Rect Settings_rect; SDL_Rect Settings_Ball_rect; @@ -20,8 +20,9 @@ Slider BV; Slider BS; Slider BT; -bool Settings_IsInit=false; +bool Settings_IsInit = false; +<<<<<<< HEAD void Settings_Initialize (SDL_Renderer* renderer) { Initialize_Slider(400,300,Scalar_width,Bar_width,Slider_height,1,2,&BV); Initialize_Slider(400,500,Scalar_width,Bar_width,Slider_height,10.0f,20.0f,&BS); @@ -31,69 +32,78 @@ void Settings_Initialize (SDL_Renderer* renderer) { Settings_Ball_Texture = IMG_LoadTexture(renderer, "assets/images/ball.png"); Settings_Ball_rect = (SDL_Rect){.x = 1200, .y = 300, .w=100, .h=100}; Settings_IsInit = true; +======= +void Settings_Initialize(SDL_Renderer * renderer) { + Initialize_Slider(400, 300, Scalar_width, Bar_width, Slider_height, 1, 2, &BV); + Initialize_Slider(400, 500, Scalar_width, Bar_width, Slider_height, 10.0f, 20.0f, &BS); + Initialize_Slider(400, 700, Scalar_width, Bar_width, Slider_height, 0, 8, &BT); + Settings_Texture = IMG_LoadTexture(renderer, "assets/images/settings_title.png"); + Settings_rect = (SDL_Rect) {.x = 800, .y = 180, .w = 313, .h = 100 }; + Settings_Ball_Texture = IMG_LoadTexture(renderer, "assets/images/ball.png"); + Settings_Ball_rect = (SDL_Rect) {.x = 1200, .y = 300, .w = 100, .h = 100 }; + Settings_IsInit = true; +>>>>>>> 1c227c0dce1e898cbd1bdf27149fdf2dcda801f3 } -void Settings_Draw (SDL_Renderer* renderer,Scenery* scenery) { - double x; - SDL_RenderCopy(renderer, Settings_Texture, NULL, &Settings_rect); - SDL_RenderCopy(renderer, Settings_Ball_Texture, NULL, &Settings_Ball_rect); - Draw_Slider(renderer,&BV); - Draw_Slider(renderer,&BS); - Draw_Slider(renderer,&BT); - Draw_Ballstate(renderer,scenery); - mapping(&x,&BS); - scenery->ball.Speed=x; - mapping(&x,&BT); - x=round(x); - scenery->ball.TextureIndex=x; +void Settings_Draw(SDL_Renderer * renderer, Scenery * scenery) { + double x; + + SDL_RenderCopy(renderer, Settings_Texture, NULL, &Settings_rect); + SDL_RenderCopy(renderer, Settings_Ball_Texture, NULL, &Settings_Ball_rect); + Draw_Slider(renderer, &BV); + Draw_Slider(renderer, &BS); + Draw_Slider(renderer, &BT); + Draw_Ballstate(renderer, scenery); + mapping(&x, &BS); + scenery->ball.Speed = x; + mapping(&x, &BT); + x = round(x); + scenery->ball.TextureIndex = x; } void Settings_Deinitialize(){ - if(Settings_IsInit){ - SDL_DestroyTexture(Settings_Texture); - SDL_DestroyTexture(Settings_Ball_Texture); - Settings_IsInit=false; - } + if (Settings_IsInit) { + SDL_DestroyTexture(Settings_Texture); + SDL_DestroyTexture(Settings_Ball_Texture); + Settings_IsInit = false; + } } -void Draw_Slider(SDL_Renderer* renderer,Slider* beta){ - SDL_SetRenderDrawColor(renderer,255,255,255,255); - SDL_RenderDrawRect(renderer,&beta->Bar_rect); - int x,y; - Uint32 Mousestate=SDL_GetMouseState(&x,&y); - if(y<=((beta->Bar_rect.y)+(beta->Bar_rect.h))&&y>=(beta->Bar_rect.y)&&x<=(beta->Bar_rect.w+beta->Bar_rect.x)&&x>=(beta->Bar_rect.x)&&(Mousestate & SDL_BUTTON(SDL_BUTTON_LEFT))){ - SDL_RenderFillRect(renderer,&beta->Scalar_rect); - SDL_RenderDrawRect(renderer,&beta->Scalar_rect); - if(x>(beta->Bar_rect.x+beta->Bar_rect.w-(beta->Scalar_rect.w)/2)){ - beta->Scalar_rect.x=(beta->Bar_rect.x+beta->Bar_rect.w-(beta->Scalar_rect.w)); - beta->Slider_value=(beta->Bar_rect.x+beta->Bar_rect.w-(beta->Scalar_rect.w)/2); +void Draw_Slider(SDL_Renderer * renderer, Slider * beta){ + SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); + SDL_RenderDrawRect(renderer, &beta->Bar_rect); + int x, y; + Uint32 Mousestate = SDL_GetMouseState(&x, &y); + if (y <= ((beta->Bar_rect.y) + (beta->Bar_rect.h)) && y >= (beta->Bar_rect.y) && x <= (beta->Bar_rect.w + beta->Bar_rect.x) && x >= (beta->Bar_rect.x) && (Mousestate & SDL_BUTTON(SDL_BUTTON_LEFT))) { + SDL_RenderFillRect(renderer, &beta->Scalar_rect); + SDL_RenderDrawRect(renderer, &beta->Scalar_rect); + if (x > (beta->Bar_rect.x + beta->Bar_rect.w - (beta->Scalar_rect.w) / 2)) { + beta->Scalar_rect.x = (beta->Bar_rect.x + beta->Bar_rect.w - (beta->Scalar_rect.w)); + beta->Slider_value = (beta->Bar_rect.x + beta->Bar_rect.w - (beta->Scalar_rect.w) / 2); + } else if (x < beta->Bar_rect.x + (beta->Scalar_rect.w) / 2) { + beta->Scalar_rect.x = beta->Bar_rect.x; + beta->Slider_value = beta->Bar_rect.x + (beta->Scalar_rect.w) / 2; + } else { + beta->Scalar_rect.x = x - (beta->Scalar_rect.w / 2); + beta->Slider_value = x; + } + } else { + SDL_RenderDrawRect(renderer, &beta->Scalar_rect); } - else if(xBar_rect.x+(beta->Scalar_rect.w)/2){ - beta->Scalar_rect.x=beta->Bar_rect.x; - beta->Slider_value=beta->Bar_rect.x+(beta->Scalar_rect.w)/2; - } - else{ - beta->Scalar_rect.x=x-(beta->Scalar_rect.w/2); - beta->Slider_value=x; - } - } - else{ - SDL_RenderDrawRect(renderer,&beta->Scalar_rect); - } -} +} /* Draw_Slider */ -void Draw_Ballstate(SDL_Renderer* renderer,Scenery* scenery){ +void Draw_Ballstate(SDL_Renderer * renderer, Scenery * scenery){ BALL_Draw(renderer, &(scenery->ball)); } -void mapping(double *x,Slider* beta){ - *x=((beta->max-beta->min)/(beta->Bar_rect.w-(beta->Scalar_rect.w)))*(beta->Slider_value-beta->Bar_rect.x-beta->Scalar_rect.w/2)+beta->min; +void mapping(double * x, Slider * beta){ + *x = ((beta->max - beta->min) / (beta->Bar_rect.w - (beta->Scalar_rect.w))) * (beta->Slider_value - beta->Bar_rect.x - beta->Scalar_rect.w / 2) + beta->min; } -void Initialize_Slider(int x,int y,int sw,int bw,int h,double min,double max,Slider* beta){ - beta->Scalar_rect = (SDL_Rect){.x=x,.y=y,.w=sw,.h=h}; - beta->Bar_rect = (SDL_Rect){.x=x,.y=y,.w=bw,.h=h}; - beta->max=max; - beta->min=min; - beta->Slider_value=x+beta->Scalar_rect.w/2; +void Initialize_Slider(int x, int y, int sw, int bw, int h, double min, double max, Slider * beta){ + beta->Scalar_rect = (SDL_Rect) {.x = x, .y = y, .w = sw, .h = h }; + beta->Bar_rect = (SDL_Rect) {.x = x, .y = y, .w = bw, .h = h }; + beta->max = max; + beta->min = min; + beta->Slider_value = x + beta->Scalar_rect.w / 2; }