From 2d5b7a1033feea5f5b7e5288ba0234968ddebbee Mon Sep 17 00:00:00 2001
From: belkhiritaha <belkhiri.taha53@gmail.com>
Date: Wed, 22 Jun 2022 20:00:29 +0200
Subject: [PATCH] animation marche update

---
 travail_de_groupe/chef_oeuvre/src/player.c | 4 ++++
 travail_de_groupe/chef_oeuvre/src/player.h | 1 +
 travail_de_groupe/chef_oeuvre/src/render.c | 6 ++++--
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c
index bee801b..622717b 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.c
+++ b/travail_de_groupe/chef_oeuvre/src/player.c
@@ -124,18 +124,22 @@ void manageMovement(){
     if(keys[PLAYER_UP]){
         moveUpPlayer();
         player.isMoving = 1;
+        player.direction = PLAYER_UP;
     }
     if(keys[PLAYER_DOWN]){
         moveDownPlayer();
         player.isMoving = 1;
+        player.direction = PLAYER_DOWN;
     }
     if(keys[PLAYER_LEFT]){
         moveLeftPlayer();
         player.isMoving = 1;
+        player.direction = PLAYER_LEFT;
     }
     if(keys[PLAYER_RIGHT]){
         moveRightPlayer();
         player.isMoving = 1;
+        player.direction = PLAYER_RIGHT;
     }
     player.isMoving = 0;
 }
diff --git a/travail_de_groupe/chef_oeuvre/src/player.h b/travail_de_groupe/chef_oeuvre/src/player.h
index e73e460..387cf00 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.h
+++ b/travail_de_groupe/chef_oeuvre/src/player.h
@@ -18,6 +18,7 @@ typedef struct player{
     int waterMax;
     int speed;
     int isMoving;
+    int direction;
 } player_t;
 
 extern player_t player;
diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c
index ed7b7c5..39214e9 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.c
+++ b/travail_de_groupe/chef_oeuvre/src/render.c
@@ -150,7 +150,9 @@ void drawPlayer(){
     rect.x = player.x  + (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2;
     rect.y = player.y ;
     SDL_Rect destRect = {32 * (SDL_GetTicks()/200%6), 0, 32, 32};
-    SDL_RenderCopyEx(renderer, playerTexture, &destRect, &rect, 0, NULL, SDL_FLIP_NONE);
+    SDL_Texture * drawTexture = (player.isMoving) ? (playerTexture):(playerIdleTexture);
+    int flip = (player.direction == PLAYER_LEFT) ? (SDL_FLIP_HORIZONTAL) : (SDL_FLIP_NONE);
+    SDL_RenderCopyEx(renderer, playerTexture, &destRect, &rect, 0, NULL, flip);
 }
 
 void drawBackgroundSides(){
@@ -221,7 +223,7 @@ void mainLoop(){
     noHoverSurface = IMG_Load("Res/noHover.png");
     noHoverTexture = SDL_CreateTextureFromSurface(renderer, noHoverSurface);
 
-    playerSurface = IMG_Load("Res/character_spritesheet.png");
+    playerSurface = IMG_Load("Res/character_tileset.png");
     playerTexture = SDL_CreateTextureFromSurface(renderer, playerSurface);
 
     backgroundSurface = IMG_Load("Res/background_mat.png");
-- 
GitLab