diff --git a/constante.c b/constante.c
index b82d014a6035146ea7a6fba5e602fdddb196da3a..bd243f1f8a0267a9d9dd395f62f2ae5a0a4c2c1b 100644
--- a/constante.c
+++ b/constante.c
@@ -22,6 +22,7 @@
 
 #define METEORITE_SIZE 32
 
+#define METEORITE_REAL_SIZE 34
 
 /**
  * \brief Hauteur de la ligne d'arrivée
@@ -42,4 +43,16 @@
   * \brief Vitesse initiale de déplacement vertical des éléments du jeu 
 */
 
-#define INITIAL_SPEED 2
\ No newline at end of file
+#define INITIAL_SPEED 16
+
+/**
+ * \brief Nombre de lignes de météorites
+ * 
+ */
+#define MAX_LINES 500
+
+/**
+ * \brief Nombre maximum de météorite par ligne
+ * 
+ */
+#define MAX_LENGTH 28
\ No newline at end of file
diff --git a/library/Display/Display.c b/library/Display/Display.c
index 1975d03b90de78b6b03f401cfb89206eb9ff6df6..c285fbb76ad23a24137931af3febf03dffd25a1b 100644
--- a/library/Display/Display.c
+++ b/library/Display/Display.c
@@ -7,14 +7,18 @@ void init_ressource(SDL_Renderer *renderer, ressources_t *textures){
     textures->background = load_image( "ressources/Elements/backgrounds/1.png",renderer);
     textures->background2 = load_image( "ressources/Elements/backgrounds/3.png",renderer);
     textures->background3 = load_image( "ressources/Elements/backgrounds/2.png",renderer);
-    textures->ship = load_image( "ressources/spaceship.bmp",renderer);
+    textures->ship = load_image( "ressources/Elements/Ship_1.png",renderer);
     
     textures->finishLine = load_image( "ressources/finish_line.bmp",renderer);
     textures->font = load_font("ressources/font/arial.ttf", 14);
     textures->color = (SDL_Color){255, 255, 255, 255};
 
     textures->BarreProgression = load_image( "ressources/Elements/BarreProgression.png",renderer);
-    textures->vaisseauMini = load_image( "ressources/spaceship.bmp",renderer);
+    textures->vaisseauMini = textures->ship;
+
+    textures->soleilBarre = load_image( "ressources/Elements/soleil.png",renderer);
+    textures->soleil = load_image( "ressources/Elements/soleil.png",renderer);
+
     init_ressource_element(renderer, textures);
 }
 
@@ -85,19 +89,22 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,ressources_t *textu
         apply_sprite(renderer, textures->ship, world->vaisseau, world);
         apply_sprite(renderer, textures->finishLine, world->ligneArriver, world);
         apply_walls(renderer, textures->meteorite, world, textures);
-
+        apply_sprite(renderer, textures->soleil, world->soleil, world);
         if (timer_update_s(world) != 0){
             world->str[0] = '\0';
             world->str = strcats(world->str, 3, "temps: ",int_to_str((int)world->timer/1000), "s");
         }
         apply_text(renderer, 10, 10, 100, 33, world->str, textures->font, textures->color); 
+        apply_sprite(renderer, textures->BarreProgression, world->BarreProgression, world);
+        apply_sprite(renderer, textures->vaisseauMini, world->vaisseauMini, world);
+        apply_sprite(renderer, textures->soleilBarre, world->soleilBarre, world);
+        
     }else{
         apply_text(renderer, 10, 10, 100, 33, "Menu", textures->font, textures->color);
         printf("aaa");
     }
     
-    apply_sprite(renderer, textures->BarreProgression, world->BarreProgression, world);
-    apply_sprite(renderer, textures->vaisseauMini, world->vaisseauMini, world);
+    
     update_screen(renderer);
     
 }
diff --git a/library/Display/Display.h b/library/Display/Display.h
index 5972538bbb21f71f438d360b944bcd27122e62f2..8a293a987d63f108adb70f93e83a72c066fc2505 100644
--- a/library/Display/Display.h
+++ b/library/Display/Display.h
@@ -41,6 +41,10 @@ struct ressources_s{
     SDL_Texture* finishLine; /*!< Texture liée à l'image de la ligne d'arrivée. */
     SDL_Texture* BarreProgression; /*!< Texture liée à l'image de l'air. */
     SDL_Texture* vaisseauMini; /*!< Texture liée à l'image du vaisseau. */
+
+    SDL_Texture* soleilBarre; /*!< Texture liée à l'image du soleil. */
+    SDL_Texture* soleil; /*!< Texture liée à l'image du soleil. */
+
     TTF_Font *font; // Font
     SDL_Color color; // Color
     long double angle; /*!< Angle de rotation de l'image. */
diff --git a/library/Display/Display.o b/library/Display/Display.o
index 43f74c5d11e683c26eba5c1d6c8db98320aee278..ca25ecf6e4d4eb9ab0f26344c1819e7fe47de2bf 100644
Binary files a/library/Display/Display.o and b/library/Display/Display.o differ
diff --git a/library/Sprites/sprites.c b/library/Sprites/sprites.c
index d67d4f56e46892f7bb6115fd89461616bb2275a9..410dde85c1a2e268e45b3868f40d7a3d0f5e230b 100644
--- a/library/Sprites/sprites.c
+++ b/library/Sprites/sprites.c
@@ -20,6 +20,7 @@ sprite_t *init_sprite(sprite_t *sprite, int x, int y, int w, int h, char id){
     sprite->w = w;
     sprite->h = h;
     sprite->id = malloc(sizeof(char) * 10);
+    sprite->dy = 0.0;
     strcpy(sprite->id, &id);
 
     return sprite;
diff --git a/library/Sprites/sprites.h b/library/Sprites/sprites.h
index 3436a48d94baba387e6fb17b80b0d4e195947f76..79f3dd814a6fd87cbb82c0820ee63170381c9f58 100644
--- a/library/Sprites/sprites.h
+++ b/library/Sprites/sprites.h
@@ -28,6 +28,7 @@ struct sprite_s{
     int y;
     int w;
     int h;
+    float dy;
     char * id;
 };
 
diff --git a/library/Sprites/sprites.o b/library/Sprites/sprites.o
index 796391e0984f8bb31c401238dbe68a3cca30be23..bd4c4897dd5bcc4379a2ebba4c8024a83d39b192 100644
Binary files a/library/Sprites/sprites.o and b/library/Sprites/sprites.o differ
diff --git a/library/World/world.c b/library/World/world.c
index 1da0af322c8e01ccba5fbe761d583ca457bb3496..fa2da20f49a0befe9d2974c4a81ab0a4999c4272 100644
--- a/library/World/world.c
+++ b/library/World/world.c
@@ -6,27 +6,36 @@ void init_data(world_t * world){
     //on n'est pas à la fin du jeu
     world->gameover = 0;
     world->speed_h = (float)INITIAL_SPEED;
+    init_walls(world);
     // Initialisation du vaisseau
     world->vaisseau = init_sprite(world->vaisseau, SCREEN_WIDTH/2 - SHIP_SIZE/2, SCREEN_HEIGHT - SHIP_SIZE-15, SHIP_SIZE, SHIP_SIZE, '0');
-    init_walls(world);
-    world->ligneArriver = init_sprite(world->ligneArriver, 0, -world->nb_lines_murs*METEORITE_SIZE-30 , SCREEN_WIDTH, FINISH_LINE_HEIGHT, 'z');
+    world->ligneArriver = init_sprite(world->ligneArriver, 0, -world->nb_lines_murs*METEORITE_REAL_SIZE-30 , SCREEN_WIDTH, FINISH_LINE_HEIGHT, 'z');
     world->BarreProgression = init_sprite(world->BarreProgression, 10, SCREEN_HEIGHT - 500, 50, 400, 'y');
     world->vaisseauMini = init_sprite(world->vaisseauMini, 10, SCREEN_HEIGHT - 130, 20, 20, 'x');
+    world->soleilBarre = init_sprite(world->soleilBarre, 0, SCREEN_HEIGHT - 510, 40, 40, 'x');
+    world->soleil = init_sprite(world->soleil, SCREEN_WIDTH/2-1800/2, -world->nb_lines_murs*METEORITE_REAL_SIZE-1400, 1800, 1800, 'z');
+
+    world->vaisseauMini->y = SCREEN_HEIGHT - (110);
+    world->vaisseauMini->dy = SCREEN_HEIGHT - (110);
     print_sprite(world->vaisseau);
     world->startTimer = SDL_GetTicks();
     world->timer = SDL_GetTicks();
     world->str = malloc(sizeof(char)*100);
     world->angle = 0.0;
     world->isFlipping = 0;
-    world->isMenu = false;
+    world->isMenu = false; 
     world->parallax = 0;
+    world->invicibility = true;
 }
 
 void update_data(world_t *world){
     if (!world->isMenu){
         world->ligneArriver->y += (int)world->speed_h;
-        world->vaisseauMini->y = 16028 + world->ligneArriver->y +  SCREEN_HEIGHT -100;
-        printf("%d\n", world->ligneArriver->y);
+        world->soleil->y += (int)world->speed_h;
+
+        world->vaisseauMini->dy -= world->speed_h/(MAX_LINES*METEORITE_REAL_SIZE+700)*400;
+        world->vaisseauMini->y = (int)world->vaisseauMini->dy;
+
         world->parallax += (int)world->speed_h;
         update_walls(world);
         if (isOverScreen(world->vaisseau)){
@@ -35,8 +44,10 @@ void update_data(world_t *world){
             if (world->vaisseau->y < 0) world->vaisseau->y = 0;
             if (world->vaisseau->y + world->vaisseau->h > SCREEN_HEIGHT) world->vaisseau->y = SCREEN_HEIGHT - world->vaisseau->h;
         }
-        for(int i = 0; i < world->nb_murs; i++){
-            collide(world->vaisseau, world->murs[i], world, 0);
+        if (!world->invicibility){
+            for(int i = 0; i < world->nb_murs; i++){
+                collide(world->vaisseau, world->murs[i], world, 0);
+            }
         }
         collide(world->vaisseau, world->ligneArriver, world, 1);
 
diff --git a/library/World/world.h b/library/World/world.h
index c127801a5040b6cb24688c7e84c8cf27b5b2c055..bc4bccc7dfe4b36f3611ae50a630c506d8900c04 100644
--- a/library/World/world.h
+++ b/library/World/world.h
@@ -39,6 +39,8 @@ struct world_s{
     sprite_t **murs2; /*<Représentation des météorites et de l'air>*/
     sprite_t *BarreProgression;
     sprite_t *vaisseauMini;
+    sprite_t *soleilBarre;
+    sprite_t *soleil;
     int nb_murs; // Nombre de météorites
     int nb_lines_murs; // Nombre de lignes de météorites
     sprite_t *ligneArriver;
@@ -52,6 +54,7 @@ struct world_s{
     bool isMenu;
 
     int parallax;
+    bool invicibility;
 };
 typedef struct world_s world_t;
 
diff --git a/library/World/world.o b/library/World/world.o
index f70a090d5e96ab151a7685db17877d39597ae6e3..25d0a95c7915071d1028a6742e77e602c4527c9f 100644
Binary files a/library/World/world.o and b/library/World/world.o differ
diff --git a/library/utility/utility.h b/library/utility/utility.h
index 5913cf6999d2e8213d463875dfccd4d8f95a3552..987adc67990829df6eda2344449aca1ce9356f3b 100644
--- a/library/utility/utility.h
+++ b/library/utility/utility.h
@@ -9,11 +9,10 @@
  * 
  */
 #include <stdarg.h>
-
+#include "../../constante.c"
 #ifndef Utility_h
 #define Utility_h
-#define MAX_LINES 500
-#define MAX_LENGTH 28
+
 
 /**
  * \brief Concatène plusieurs chaines de caractères
diff --git a/main.o b/main.o
index 1b397cb2cfb757271f864f88b076a88e022e26dd..d64b196fbec15598f07cf46ceb3e4a4fd22a43ae 100644
Binary files a/main.o and b/main.o differ
diff --git a/ressources/Elements/BarreProgression.png b/ressources/Elements/BarreProgression.png
index 19fbdca8bcabf0c21f62944b35a013a1516ddc2e..0c3c7d810386ab2a144fe94efa4334a347bbb63a 100644
Binary files a/ressources/Elements/BarreProgression.png and b/ressources/Elements/BarreProgression.png differ
diff --git a/ressources/Elements/backgrounds/1.png b/ressources/Elements/backgrounds/1.png
index 0af7b12486d5767a021d873be42f39b9e74a0ffc..029df89f00bb1e1788d025a2bead39b5169c9439 100644
Binary files a/ressources/Elements/backgrounds/1.png and b/ressources/Elements/backgrounds/1.png differ
diff --git a/ressources/Elements/soleil.png b/ressources/Elements/soleil.png
new file mode 100644
index 0000000000000000000000000000000000000000..0407d3ee7c7e409e84152914c8383b5f86e56774
Binary files /dev/null and b/ressources/Elements/soleil.png differ
diff --git a/spacecorridor.exe b/spacecorridor.exe
index 87a5f628cfdcde27a1f6b8109787bed8398d57f5..e8f47fb05240485befc9f31d76799bd21cf21c5b 100644
Binary files a/spacecorridor.exe and b/spacecorridor.exe differ