diff --git a/background.c b/background.c index e56a996..057dfd7 100644 --- a/background.c +++ b/background.c @@ -12,6 +12,7 @@ #include "background.h" #define BG_Path_1 "assets/images/bg/bg1.png" +#define BG_Path_2 "assets/images/bg/bg2.png" int BACKGROUND_BoxWidth, BACKGROUND_BoxHeight; int BACKGROUND_TextureCount; @@ -28,6 +29,8 @@ void BACKGROUND_Initialize(SDL_Renderer * renderer, int width, int height){ BACKGROUND_TotalRect = (SDL_Rect) {.x = 0, .y = 0, .w = 1920, .h = 1080 }; BACKGROUND_Textures = malloc(BACKGROUND_TextureCount * sizeof(SDL_Texture *)); BACKGROUND_Textures[0] = IMG_LoadTexture(renderer, BG_Path_1); + // BACKGROUND_Textures[1] = IMG_LoadTexture(renderer, BG_Path_2); + // BACKGROUND_Textures[2] = IMG_LoadTexture(renderer, BG_Path_3); printf("Background initialized!\n"); BACKGROUND_IsInit = true; } else diff --git a/bin/assets/images/bg/bg2.png b/bin/assets/images/bg/bg2.png new file mode 100644 index 0000000..7a2d34e Binary files /dev/null and b/bin/assets/images/bg/bg2.png differ diff --git a/bin/assets/images/circle.png b/bin/assets/images/circle.png index b082f66..319b50c 100644 Binary files a/bin/assets/images/circle.png and b/bin/assets/images/circle.png differ diff --git a/main.c b/main.c index d923c3a..3154e94 100644 --- a/main.c +++ b/main.c @@ -42,6 +42,7 @@ Scenery scenery; Mix_Music * MenuLoop; char * Username; char * Password; +int background=0; int main(int argc, char * args[]){ AttemptLogin(); @@ -57,7 +58,7 @@ int main(int argc, char * args[]){ switch (gameState) { case Game: BREAKOUT_Update(&scenery, keystate); - BACKGROUND_Draw(renderer, 0); + BACKGROUND_Draw(renderer, background); BREAKOUT_Draw(&scenery, renderer); break; case MainMenu: @@ -68,7 +69,7 @@ int main(int argc, char * args[]){ HIGHSCORES_Draw(renderer); break; case Settings: - Settings_Draw(renderer, &scenery); + Settings_Draw(renderer, &scenery,&background); break; case GameOver: GAMEOVER_Draw(renderer, &scenery); diff --git a/settings.c b/settings.c index 900348b..353bd56 100644 --- a/settings.c +++ b/settings.c @@ -30,7 +30,7 @@ SDL_Rect Settings_Skins_rect; SDL_Rect Return_Button_rect; SDL_Rect Circle_rect; -Slider BV; +Slider BG; Slider BS; Slider BT; @@ -40,7 +40,7 @@ bool Settings_IsInit = false; bool IsLock=false; void Settings_Initialize (SDL_Renderer* renderer,Scenery* scenery) { - // Initialize_Slider(400,300,Scalar_width,Bar_width,Slider_height,1,2,&BV,1.5); + Initialize_Slider(400,300,Scalar_width,Bar_width,Slider_height,0,1,&BG,0); Initialize_Slider(400,500,Scalar_width,Bar_width,Slider_height,10,100,&BS,scenery->ball.TargetRect.w); Initialize_Slider(400,700,Scalar_width,Bar_width,Slider_height,0,8,&BT,scenery->ball.TextureIndex); //Initialize_Slider(400,300,Scalar_width,Bar_width,Slider_height,0,8,&BT,scenery->paddle.TextureIndex); @@ -60,19 +60,20 @@ void Settings_Initialize (SDL_Renderer* renderer,Scenery* scenery) { Scalar_Button_Texture1 = IMG_LoadTexture(renderer, "assets/images/scalar_button_pressed.png"); Circle_Texture = IMG_LoadTexture(renderer,"assets/images/circle.png"); - Circle_rect = (SDL_Rect){.x = 1200, .y = 500, .w=75, .h=75}; + Circle_rect = (SDL_Rect){.x = 1250, .y = 500, .w=75, .h=75}; Settings_IsInit = true; } -void Settings_Draw(SDL_Renderer * renderer, Scenery * scenery) { +void Settings_Draw(SDL_Renderer * renderer, Scenery * scenery,int *backgroundcount) { double x; if(!(Mousestate & SDL_BUTTON(SDL_BUTTON_LEFT))){ - IsLock=BV.IsLock=BS.IsLock=BT.IsLock=false; + IsLock=BG.IsLock=BS.IsLock=BT.IsLock=false; }else{ IsLock=true; } - Draw_Slider(renderer, &BV); + BACKGROUND_Draw(renderer,*backgroundcount); + Draw_Slider(renderer, &BG); Draw_Slider(renderer, &BS); Draw_Slider(renderer, &BT); SDL_RenderCopy(renderer, Settings_Texture, NULL, &Settings_rect); @@ -85,7 +86,7 @@ void Settings_Draw(SDL_Renderer * renderer, Scenery * scenery) { scenery->ball.TargetRect.w = x; scenery->ball.TargetRect.h = x; scenery->ball.Size = ((double)x / 2.0f); - int posx=1200,posy=500; + int posx=1250,posy=500; Circle_rect.x=posx-0.5*Circle_rect.w; Circle_rect.y=posy+0.5*(100-Circle_rect.w); Circle_rect.w=x; @@ -93,6 +94,9 @@ void Settings_Draw(SDL_Renderer * renderer, Scenery * scenery) { mapping(&x, &BT); x = round(x); scenery->ball.TextureIndex = x; + mapping(&x,&BG); + x=round(x); + *backgroundcount=x; } void Settings_Deinitialize(){ diff --git a/settings.h b/settings.h index 57542bb..a2bd4e2 100644 --- a/settings.h +++ b/settings.h @@ -10,6 +10,7 @@ #include "breakout.h" #include "gamestate.h" #include "main.h" +#include "background.h" typedef struct sliderstruct { SDL_Rect Bar_rect; @@ -18,7 +19,7 @@ typedef struct sliderstruct { double Slider_value,min,max; } Slider; -void Settings_Draw (SDL_Renderer* renderer,Scenery* scenery); +void Settings_Draw (SDL_Renderer* renderer,Scenery* scenery,int *backgroundcount); void Draw_Slider(SDL_Renderer* renderer,Slider* beta);