diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
index 34ff2193e15ddc35b3ff8fca0b2003783e02d0cb..b014b4c107a7abe2e10af291b4b57ef39ba727c1 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
@@ -134,7 +134,12 @@ void gestGame()
         case SDL_MOUSEBUTTONDOWN:
             if (event.button.button == SDL_BUTTON_LEFT)
             {
-                player.isHitting = 1;
+                if (player.isHitting){
+                    player.isHitting = 0;
+                }
+                else {
+                    player.isHitting = 1;
+                }
             }
             break;
 
@@ -149,7 +154,6 @@ void gestGame()
             break;
         }
     }
-    managePlayer();
     SDL_Delay(5);
 }
 
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/player.c b/travail_de_groupe/jeu_appren_par_renfo/src/player.c
index f28dfe02527d746861ab4b7a4fd28e811803514a..9db7c0d83c5beed6025d981a6304ae7d879917ee 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/player.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/player.c
@@ -18,7 +18,7 @@ void initPlayer()
     ennemy.x = 25 * BLOCK_SIZE;
     ennemy.y = 5 * BLOCK_SIZE;
     ennemy.angle = -pi;
-    player.speed = 1;
+    player.speed = 100;
     player.isMoving = 0;
     player.HPMax = 3;
     player.currentHP = player.HPMax;
@@ -79,16 +79,16 @@ void hitBall()
 
         int rxNet, ryNet;
         float distanceNet;
+        if (player.isHitting)
+        {
         castSingleRay(player.angle, &distanceWall, &distanceNet, &rxWall, &ryWall, &rxNet, &ryNet);
         printf("rayWall: %d %d\n", rxWall/BLOCK_SIZE, ryWall/BLOCK_SIZE);
         printf("distanceWall: %f\n", distanceWall);
 
         printf("rayNet: %d %d\n", rxNet/BLOCK_SIZE, ryNet/BLOCK_SIZE);
         printf("distanceNet: %f\n", distanceNet);
-        if (rxWall > MAP_WIDTH/2)
-        {
             // printf("hit\n");
-            if (player.isHitting)
+            if (rxWall > MAP_WIDTH/2)
             {
                 freeIntList(landingPoint);
                 freeIntList(lastHitPoint);
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/player.h b/travail_de_groupe/jeu_appren_par_renfo/src/player.h
index 6e59c1a489cadfaab490e8b1259479c42048ec11..ebe9a2dbf350d550cbf6316a206180b2c86ce997 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/player.h
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/player.h
@@ -11,9 +11,9 @@
 #define ENTITIES_RIGHT 3
 
 #define HIT_RANGE 2
-#define HIT_FORCE 1
+#define HIT_FORCE 20
 
-#define MOVEMENT_SPEED 2
+#define MOVEMENT_SPEED 20
 typedef struct player{
     float x;
     float y;
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/render.c b/travail_de_groupe/jeu_appren_par_renfo/src/render.c
index 045b7918d3005ad3d85ec894ffef76b46f0a806e..9b1ffdb4bc62f8b964a36dc59b1616020576d94d 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/render.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/render.c
@@ -993,10 +993,18 @@ void drawGame()
     SDL_RenderClear(renderer);
     drawSkyAndGround();
     castRays(map);
-    drawHorizentalRays();
-    drawEnnemy();
-    drawVerticalRays();
-    drawBall();
+    if (ball.x < MAP_WIDTH * BLOCK_SIZE/2){
+        drawHorizentalRays();
+        drawEnnemy();
+        drawVerticalRays();
+        drawBall();
+    }
+    else {
+        drawHorizentalRays();
+        drawBall();
+        drawVerticalRays();
+        drawEnnemy();
+    }
     drawMap2D(map);
     drawFPS();
     drawInfosPlayer();
@@ -1046,6 +1054,7 @@ void mainLoop()
                 break;
             case GAME:
                 drawGame();
+                managePlayer();
                 break;
             }
         }