diff --git a/travail_de_groupe/chef_oeuvre/Res/wonScreen.png b/travail_de_groupe/chef_oeuvre/Res/wonScreen.png new file mode 100755 index 0000000000000000000000000000000000000000..c5159ef181c86500f845478a621bc28d85805d58 Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/wonScreen.png differ diff --git a/travail_de_groupe/chef_oeuvre/src/gest_event.c b/travail_de_groupe/chef_oeuvre/src/gest_event.c index cfaf1e2cc7323edc1ec1539138139c8c0f80aa61..3db27bee0477d6f82dd284ad0f9c2ba9f582d951 100644 --- a/travail_de_groupe/chef_oeuvre/src/gest_event.c +++ b/travail_de_groupe/chef_oeuvre/src/gest_event.c @@ -212,6 +212,7 @@ void *eventLoop(void *arg){ case MENU : manageMenu();break; case GAME : manageGame();break; case LOSE : manageLost();break; + case WON : manageLost();break; default:printf("game state fault");break; } } diff --git a/travail_de_groupe/chef_oeuvre/src/main.h b/travail_de_groupe/chef_oeuvre/src/main.h index 3604248fe8252e88ac6148f5c29f5e03f17cfe1c..b352d3833f8f83dc08e9875d981e8252a5dff85a 100644 --- a/travail_de_groupe/chef_oeuvre/src/main.h +++ b/travail_de_groupe/chef_oeuvre/src/main.h @@ -24,6 +24,7 @@ #define MENU 0 #define GAME 1 #define LOSE 2 +#define WON 3 extern int running; extern int gameState; diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c index ad055c9aa9e5a15d8e477a2d4d14a08092bdf65f..10d6322c5e1af64b1b9b4f890107cdee1590a0bd 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.c +++ b/travail_de_groupe/chef_oeuvre/src/render.c @@ -78,6 +78,9 @@ SDL_Texture * scoreTexture; SDL_Surface * nextFireSurface; SDL_Texture * nextFireTexture; +SDL_Surface * backgroundWonSurface; +SDL_Texture * backgroundWonTexture; + void createWindow(){ if (SDL_Init(SDL_INIT_VIDEO) != 0){ @@ -353,6 +356,19 @@ void drawLost(){ SDL_RenderPresent(renderer); } +void drawWon(){ + SDL_Rect rect; + rect.h = screenDimension.h; + rect.w = screenDimension.w; + rect.x = 0; + rect.y = 0; + SDL_RenderCopy(renderer, backgroundWonTexture, NULL, &rect); + SDL_RenderCopy(renderer, playAgainButtonHoverTexture, NULL, &rect); + SDL_RenderCopy(renderer, quitButtonHoverTexture, NULL, &rect); + SDL_RenderCopy(renderer, playAgainButtonHoverTexture, NULL, &rect); + SDL_RenderPresent(renderer); +} + void mainLoop(){ createWindow(); initPlayer(); @@ -423,7 +439,8 @@ void mainLoop(){ heartSurface = IMG_Load("Res/heart_spritesheet.png"); heartTexture = SDL_CreateTextureFromSurface(renderer, heartSurface); - + backgroundWonSurface = IMG_Load("Res/wonScreen.png"); + backgroundWonTexture = SDL_CreateTextureFromSurface(renderer, backgroundWonTexture); SDL_FreeSurface(grassSurface); SDL_FreeSurface(treeSurface); @@ -445,6 +462,7 @@ void mainLoop(){ SDL_FreeSurface(quitButtonHoverSurface); SDL_FreeSurface(playAgainButtonHoverSurface); SDL_FreeSurface(heartSurface); + SDL_FreeSurface(backgroundWonSurface); playAgainButtonRect.x = (screenDimension.w * 700)/1920; playAgainButtonRect.y = (screenDimension.h * 615)/1080; @@ -484,11 +502,18 @@ void mainLoop(){ } //updateMap(); drawGame(); + if (fireList == NULL){ + gameState = WON; + } break; case LOSE: drawLost(); break; + + case WON: + drawWon(); + break; } } else {