Skip to content
Snippets Groups Projects
Commit 3b336782 authored by belkhiritaha's avatar belkhiritaha
Browse files

Merge branch 'render' into main

parents 8a9a3a19 b9c685ef
Branches
No related tags found
No related merge requests found
Showing
with 160 additions and 6 deletions
travail_de_groupe/chef_oeuvre/Res/buttonPlayAgain.png

26.2 KiB

travail_de_groupe/chef_oeuvre/Res/buttonPlayAgainHover.png

16.8 KiB

travail_de_groupe/chef_oeuvre/Res/buttonQuit.png

25.6 KiB

travail_de_groupe/chef_oeuvre/Res/buttonQuitHover.png

17.3 KiB

travail_de_groupe/chef_oeuvre/Res/heart_spritesheet.png

46.9 KiB

travail_de_groupe/chef_oeuvre/Res/lostScreen.png

372 KiB

...@@ -53,7 +53,62 @@ void manageMenu(){ ...@@ -53,7 +53,62 @@ void manageMenu(){
continue; continue;
} }
} }
manageMovement(); SDL_Delay(5);
}
void manageLost(){
SDL_Event event;
while (SDL_PollEvent(&event)){
switch(event.type)
{
case SDL_QUIT:
running = 0;
break;
case SDL_KEYUP:
switch (event.key.keysym.sym)
{
case SDLK_ESCAPE:
running = 0;
continue;
default:
continue;
}
break;
case SDL_KEYDOWN:
switch (event.key.keysym.sym)
{
case SDLK_ESCAPE:
running = 0;
continue;
default:
continue;
}
break;
case SDL_MOUSEMOTION:
mousePosition.x = event.motion.x;
mousePosition.y = event.motion.y;
continue;
case SDL_MOUSEBUTTONDOWN:
if (SDL_PointInRect(&mousePosition, &playAgainButtonRect)){
initAll();
gameState = GAME;
}
if (SDL_PointInRect(&mousePosition, &quitButtonRect)){
running = 0;
}
break;
default:
continue;
}
}
SDL_Delay(5); SDL_Delay(5);
} }
...@@ -140,7 +195,7 @@ void manageGame(){ ...@@ -140,7 +195,7 @@ void manageGame(){
continue; continue;
} }
} }
manageMovement(); updatePlayer();
SDL_Delay(5); SDL_Delay(5);
} }
...@@ -149,6 +204,7 @@ void *eventLoop(void *arg){ ...@@ -149,6 +204,7 @@ void *eventLoop(void *arg){
switch(gameState){ switch(gameState){
case MENU : manageMenu();break; case MENU : manageMenu();break;
case GAME : manageGame();break; case GAME : manageGame();break;
case LOSE : manageLost();break;
default:printf("game state fault");break; default:printf("game state fault");break;
} }
} }
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#define MENU 0 #define MENU 0
#define GAME 1 #define GAME 1
#define LOSE 2
extern int running; extern int running;
extern int gameState; extern int gameState;
......
...@@ -200,4 +200,16 @@ void fillWater(int x, int y){ ...@@ -200,4 +200,16 @@ void fillWater(int x, int y){
} }
} }
void updatePlayer(){
if (player.currentHP <= 0){
gameState = LOSE;
}
manageMovement();
}
void initAll(){
initFire();
initPlayer();
}
...@@ -34,5 +34,7 @@ int selectStateHover(); ...@@ -34,5 +34,7 @@ int selectStateHover();
void pourWater(int, int); void pourWater(int, int);
void fillWater(int, int); void fillWater(int, int);
int giveCaseBelowPosition(int, int); int giveCaseBelowPosition(int, int);
void updatePlayer();
void initAll();
#endif #endif
\ No newline at end of file
...@@ -10,6 +10,8 @@ TTF_Font *robotoFont; ...@@ -10,6 +10,8 @@ TTF_Font *robotoFont;
SDL_DisplayMode screenDimension; SDL_DisplayMode screenDimension;
SDL_Rect buttonRect; SDL_Rect buttonRect;
SDL_Rect playAgainButtonRect;
SDL_Rect quitButtonRect;
SDL_Surface * grassSurface; SDL_Surface * grassSurface;
SDL_Texture * grassTexture; SDL_Texture * grassTexture;
...@@ -35,12 +37,27 @@ SDL_Texture * backgroundTexture; ...@@ -35,12 +37,27 @@ SDL_Texture * backgroundTexture;
SDL_Surface * backgroundSidesSurface; SDL_Surface * backgroundSidesSurface;
SDL_Texture * backgroundSidesTexture; SDL_Texture * backgroundSidesTexture;
SDL_Surface * backgroundLostSurface;
SDL_Texture * backgroundLostTexture;
SDL_Surface * playButtonSurface; SDL_Surface * playButtonSurface;
SDL_Texture * playButtonTexture; SDL_Texture * playButtonTexture;
SDL_Surface * playButtonHoverSurface; SDL_Surface * playButtonHoverSurface;
SDL_Texture * playButtonHoverTexture; SDL_Texture * playButtonHoverTexture;
SDL_Surface * playAgainButtonSurface;
SDL_Texture * playAgainButtonTexture;
SDL_Surface * playAgainButtonHoverSurface;
SDL_Texture * playAgainButtonHoverTexture;
SDL_Surface * quitButtonSurface;
SDL_Texture * quitButtonTexture;
SDL_Surface * quitButtonHoverSurface;
SDL_Texture * quitButtonHoverTexture;
SDL_Surface * fireSurface; SDL_Surface * fireSurface;
SDL_Texture * fireTexture; SDL_Texture * fireTexture;
...@@ -53,6 +70,9 @@ SDL_Texture * emptyBucketTexture; ...@@ -53,6 +70,9 @@ SDL_Texture * emptyBucketTexture;
SDL_Surface * filledBucketSurface; SDL_Surface * filledBucketSurface;
SDL_Texture * filledBucketTexture; SDL_Texture * filledBucketTexture;
SDL_Surface * heartSurface;
SDL_Texture * heartTexture;
SDL_Surface * scoreSurface; SDL_Surface * scoreSurface;
SDL_Texture * scoreTexture; SDL_Texture * scoreTexture;
...@@ -65,7 +85,7 @@ void createWindow(){ ...@@ -65,7 +85,7 @@ void createWindow(){
SDL_GetCurrentDisplayMode(0, &screenDimension); SDL_GetCurrentDisplayMode(0, &screenDimension);
window = SDL_CreateWindow("Game Of Life", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, screenDimension.w, screenDimension.h, SDL_WINDOW_INPUT_GRABBED | SDL_WINDOW_SHOWN | SDL_WINDOW_FULLSCREEN_DESKTOP); window = SDL_CreateWindow("Mat the Firefighter", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, screenDimension.w, screenDimension.h, SDL_WINDOW_INPUT_GRABBED | SDL_WINDOW_SHOWN | SDL_WINDOW_FULLSCREEN_DESKTOP);
if (window == NULL){ if (window == NULL){
printf("Couldn't create window"); printf("Couldn't create window");
...@@ -246,16 +266,24 @@ void drawPlayerHP(){ ...@@ -246,16 +266,24 @@ void drawPlayerHP(){
SDL_Rect rect; SDL_Rect rect;
rect.h = borderWidth/player.HPMax; rect.h = borderWidth/player.HPMax;
rect.w = rect.h; rect.w = rect.h;
SDL_Rect destRect;
destRect.w = 1024;
destRect.h = 1024;
destRect.x = destRect.w * (SDL_GetTicks()/200 % 4);
destRect.y = 0;
int count = player.currentHP; int count = player.currentHP;
for (int i=0; i<player.HPMax; i++){ for (int i=0; i<player.HPMax; i++){
rect.x = (i*rect.h); rect.x = (i*rect.h);
rect.y = screenDimension.h - 3 * rect.h; rect.y = screenDimension.h - 3 * rect.h;
if (count){ if (count){
count--; count--;
SDL_RenderCopy(renderer, filledBucketTexture, NULL, &rect); SDL_RenderCopy(renderer, heartTexture, &destRect, &rect);
} }
else { else {
SDL_RenderCopy(renderer, emptyBucketTexture, NULL, &rect); SDL_SetTextureColorMod( heartTexture,0,0,0);
SDL_RenderCopy(renderer, heartTexture, &destRect, &rect);
SDL_SetTextureColorMod( heartTexture,255,255,255);
} }
} }
} }
...@@ -306,6 +334,20 @@ void drawGame(){ ...@@ -306,6 +334,20 @@ void drawGame(){
SDL_RenderPresent(renderer); SDL_RenderPresent(renderer);
} }
void drawLost(){
SDL_Rect rect;
rect.h = screenDimension.h;
rect.w = screenDimension.w;
rect.x = 0;
rect.y = 0;
SDL_RenderCopy(renderer, backgroundLostTexture, 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(){ void mainLoop(){
createWindow(); createWindow();
initPlayer(); initPlayer();
...@@ -334,12 +376,27 @@ void mainLoop(){ ...@@ -334,12 +376,27 @@ void mainLoop(){
backgroundSidesSurface = IMG_Load("Res/background_sides.png"); backgroundSidesSurface = IMG_Load("Res/background_sides.png");
backgroundSidesTexture = SDL_CreateTextureFromSurface(renderer, backgroundSidesSurface); backgroundSidesTexture = SDL_CreateTextureFromSurface(renderer, backgroundSidesSurface);
backgroundLostSurface = IMG_Load("Res/lostScreen.png");
backgroundLostTexture = SDL_CreateTextureFromSurface(renderer, backgroundLostSurface);
playButtonSurface = IMG_Load("Res/play_button.png"); playButtonSurface = IMG_Load("Res/play_button.png");
playButtonTexture = SDL_CreateTextureFromSurface(renderer, playButtonSurface); playButtonTexture = SDL_CreateTextureFromSurface(renderer, playButtonSurface);
playButtonHoverSurface = IMG_Load("Res/play_button_hover.png"); playButtonHoverSurface = IMG_Load("Res/play_button_hover.png");
playButtonHoverTexture = SDL_CreateTextureFromSurface(renderer, playButtonHoverSurface); playButtonHoverTexture = SDL_CreateTextureFromSurface(renderer, playButtonHoverSurface);
quitButtonSurface = IMG_Load("Res/buttonQuit.png");
quitButtonTexture = SDL_CreateTextureFromSurface(renderer, quitButtonSurface);
quitButtonHoverSurface = IMG_Load("Res/buttonQuitHover.png");
quitButtonHoverTexture = SDL_CreateTextureFromSurface(renderer, quitButtonHoverSurface);
playAgainButtonSurface = IMG_Load("Res/buttonPlayAgain.png");
playAgainButtonTexture = SDL_CreateTextureFromSurface(renderer, playAgainButtonSurface);
playAgainButtonHoverSurface = IMG_Load("Res/buttonPlayAgainHover.png");
playAgainButtonHoverTexture = SDL_CreateTextureFromSurface(renderer, playAgainButtonHoverSurface);
fireSurface = IMG_Load("Res/fire_spritesheet.png"); fireSurface = IMG_Load("Res/fire_spritesheet.png");
fireTexture = SDL_CreateTextureFromSurface(renderer, fireSurface); fireTexture = SDL_CreateTextureFromSurface(renderer, fireSurface);
...@@ -355,6 +412,11 @@ void mainLoop(){ ...@@ -355,6 +412,11 @@ void mainLoop(){
scoreSurface = IMG_Load("Res/score.png"); scoreSurface = IMG_Load("Res/score.png");
scoreTexture = SDL_CreateTextureFromSurface(renderer, scoreSurface); scoreTexture = SDL_CreateTextureFromSurface(renderer, scoreSurface);
heartSurface = IMG_Load("Res/heart_spritesheet.png");
heartTexture = SDL_CreateTextureFromSurface(renderer, heartSurface);
SDL_FreeSurface(grassSurface); SDL_FreeSurface(grassSurface);
SDL_FreeSurface(treeSurface); SDL_FreeSurface(treeSurface);
SDL_FreeSurface(hoverSurface); SDL_FreeSurface(hoverSurface);
...@@ -369,7 +431,22 @@ void mainLoop(){ ...@@ -369,7 +431,22 @@ void mainLoop(){
SDL_FreeSurface(emptyBucketSurface); SDL_FreeSurface(emptyBucketSurface);
SDL_FreeSurface(filledBucketSurface); SDL_FreeSurface(filledBucketSurface);
SDL_FreeSurface(scoreSurface); SDL_FreeSurface(scoreSurface);
SDL_FreeSurface(backgroundLostSurface);
SDL_FreeSurface(playAgainButtonSurface);
SDL_FreeSurface(quitButtonSurface);
SDL_FreeSurface(quitButtonHoverSurface);
SDL_FreeSurface(playAgainButtonHoverSurface);
SDL_FreeSurface(heartSurface);
playAgainButtonRect.x = (screenDimension.w * 700)/1920;
playAgainButtonRect.y = (screenDimension.h * 615)/1080;
playAgainButtonRect.w = (screenDimension.w * 400)/1920;
playAgainButtonRect.h = (screenDimension.h * 130)/1080;
quitButtonRect.x = playAgainButtonRect.x;
quitButtonRect.w = playAgainButtonRect.w;
quitButtonRect.y = (screenDimension.h * 887)/1080;
quitButtonRect.h = playAgainButtonRect.h;
unsigned int a = SDL_GetTicks(); unsigned int a = SDL_GetTicks();
unsigned int b = SDL_GetTicks(); unsigned int b = SDL_GetTicks();
...@@ -399,6 +476,10 @@ void mainLoop(){ ...@@ -399,6 +476,10 @@ void mainLoop(){
} }
drawGame(); drawGame();
break; break;
case LOSE:
drawLost();
break;
} }
} }
else { else {
......
...@@ -12,6 +12,8 @@ extern SDL_Window *window; ...@@ -12,6 +12,8 @@ extern SDL_Window *window;
extern SDL_Renderer *renderer; extern SDL_Renderer *renderer;
extern SDL_DisplayMode screenDimension; extern SDL_DisplayMode screenDimension;
extern SDL_Rect buttonRect; extern SDL_Rect buttonRect;
extern SDL_Rect playAgainButtonRect;
extern SDL_Rect quitButtonRect;
extern float timer; extern float timer;
void drawHover(int x, int y); void drawHover(int x, int y);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment