diff --git a/travail_de_groupe/chef_oeuvre/Res/background_sides.png b/travail_de_groupe/chef_oeuvre/Res/background_sides.png index bbbb3a44de2425f13ef2a06314555364c814facf..52040cfbd1c62249c3d593a4939a0b438da81a8e 100755 Binary files a/travail_de_groupe/chef_oeuvre/Res/background_sides.png and b/travail_de_groupe/chef_oeuvre/Res/background_sides.png differ diff --git a/travail_de_groupe/chef_oeuvre/Res/empty_bucket.png b/travail_de_groupe/chef_oeuvre/Res/empty_bucket.png new file mode 100755 index 0000000000000000000000000000000000000000..a883dbc437bdfbacc65fde9c2693edc92708db26 Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/empty_bucket.png differ diff --git a/travail_de_groupe/chef_oeuvre/Res/filled_bucket.png b/travail_de_groupe/chef_oeuvre/Res/filled_bucket.png new file mode 100755 index 0000000000000000000000000000000000000000..74c9e04dabe9c9f58e819d3d34b10f3b46bf9c1f Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/filled_bucket.png differ diff --git a/travail_de_groupe/chef_oeuvre/Res/water.png b/travail_de_groupe/chef_oeuvre/Res/water.png new file mode 100755 index 0000000000000000000000000000000000000000..a96e17c7999fbc681be91279a454b647505fa8ea Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/water.png differ diff --git a/travail_de_groupe/chef_oeuvre/map.txt b/travail_de_groupe/chef_oeuvre/map.txt index cfd451b26db099bb036f41da76b8a9cb238c16d2..febf0b99c84c26d15b22aecde8e795d01cce47ea 100644 --- a/travail_de_groupe/chef_oeuvre/map.txt +++ b/travail_de_groupe/chef_oeuvre/map.txt @@ -15,6 +15,6 @@ 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 \ No newline at end of file +2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 \ No newline at end of file diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c index 9d5c1ba7f5f220f341f6665aabe6d9b7461c2b64..55bffb946942c7a449683ac5f4b6aa8d2c37ad7b 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.c +++ b/travail_de_groupe/chef_oeuvre/src/render.c @@ -38,6 +38,15 @@ SDL_Texture * playButtonHoverTexture; SDL_Surface * fireSurface; SDL_Texture * fireTexture; +SDL_Surface * waterSurface; +SDL_Texture * waterTexture; + +SDL_Surface * emptyBucketSurface; +SDL_Texture * emptyBucketTexture; + +SDL_Surface * filledBucketSurface; +SDL_Texture * filledBucketTexture; + void createWindow(){ if (SDL_Init(SDL_INIT_VIDEO) != 0){ @@ -111,8 +120,13 @@ void drawMap(){ for(i = 0; i < MAPSIZE; i++){ for(j = 0; j < MAPSIZE; j++){ SDL_RenderCopy(renderer, grassTexture, NULL, &rect); - if(map[i][j] == 1){ - SDL_RenderCopy(renderer, treeTexture, NULL, &rect); + switch (map[i][j]){ + case 1: + SDL_RenderCopy(renderer, treeTexture, NULL, &rect); + break; + case 2: + SDL_RenderCopy(renderer, waterTexture, NULL, &rect); + break; } if (mousePosition.x == j && mousePosition.y == i){ if (selectStateHover()){ @@ -153,7 +167,6 @@ void drawFire(){ srcRect.x = srcRect.w * (SDL_GetTicks()/200 % 8); srcRect.y= 0; while (cour != NULL){ - printf("%p %d %d\n", (cour->fire), (cour->fire).x, (cour->fire).x); rect.h = CELLSIZE; rect.w = CELLSIZE; rect.x = (cour->fire).x * CELLSIZE + (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2; @@ -163,12 +176,32 @@ void drawFire(){ } } +void drawPlayerWaterLevel(){ + int borderWidth = (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2; + SDL_Rect rect; + rect.h = borderWidth/3; + rect.w = borderWidth/3; + int count = player.waterLevel; + for (int i=0; i<3; i++){ + rect.x = (i*rect.h); + rect.y = screenDimension.h/3; + if (count){ + count--; + SDL_RenderCopy(renderer, filledBucketTexture, NULL, &rect); + } + else { + SDL_RenderCopy(renderer, emptyBucketTexture, NULL, &rect); + } + } +} + void drawGame(){ SDL_RenderClear(renderer); drawBackgroundSides(); drawMap(); drawPlayer(); drawFire(); + drawPlayerWaterLevel(); SDL_RenderPresent(renderer); } @@ -206,6 +239,15 @@ void mainLoop(){ fireSurface = IMG_Load("Res/fire.png"); fireTexture = SDL_CreateTextureFromSurface(renderer, fireSurface); + waterSurface = IMG_Load("Res/water.png"); + waterTexture = SDL_CreateTextureFromSurface(renderer, waterSurface); + + emptyBucketSurface = IMG_Load("Res/empty_bucket.png"); + emptyBucketTexture = SDL_CreateTextureFromSurface(renderer, emptyBucketSurface); + + filledBucketSurface = IMG_Load("Res/filled_bucket.png"); + filledBucketTexture = SDL_CreateTextureFromSurface(renderer, filledBucketSurface); + SDL_FreeSurface(grassSurface); SDL_FreeSurface(treeSurface); SDL_FreeSurface(hoverSurface); @@ -216,6 +258,7 @@ void mainLoop(){ SDL_FreeSurface(backgroundSidesSurface); SDL_FreeSurface(noHoverSurface); SDL_FreeSurface(fireSurface); + SDL_FreeSurface(waterSurface); unsigned int a = SDL_GetTicks(); unsigned int b = SDL_GetTicks();