diff --git a/Makefile b/Makefile
index 27efdece066be0fff213e822f3f031ff1b732710..95d19433f1faa8bdec120bf2f1227f6e09c0a5bb 100644
--- a/Makefile
+++ b/Makefile
@@ -3,8 +3,8 @@ LDFLAGS = -lm -lmingw32 -lSDL2main -lSDL2 -lSDL2_ttf
 SDL2_INCLUDE_DIR = src/include
 SDL2_LIBRARIES_DIR = src/lib
 
-INC = sdl2-light.h sdl2-ttf-light.h library/Display/Display.h library/World/world.h library/Sprites/sprites.h library/utility/utility.h 
-SRC = main.c sdl2-light.c sdl2-ttf-light.c library/Display/Display.c library/World/world.c library/Sprites/sprites.c library/utility/utility.c
+INC = sdl2-light.h sdl2-ttf-light.h library/Display/Display.h library/World/world.h library/Sprites/sprites.h library/utility/utility.h library/menu/menu.h
+SRC = main.c sdl2-light.c sdl2-ttf-light.c library/Display/Display.c library/World/world.c library/Sprites/sprites.c library/utility/utility.c library/menu/menu.c
 
 OBJ = $(SRC:%.c=%.o)
 
diff --git a/library/Display/Display.c b/library/Display/Display.c
index 6fc28aa12a377435fe47d9f2cb6ba62ece7fe193..faa3d0db6d42438d07b05c3a2a0d962d727ea782 100644
--- a/library/Display/Display.c
+++ b/library/Display/Display.c
@@ -87,6 +87,9 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,ressources_t *textu
         apply_text(renderer, 10, 10, 100, 33, world->str, textures->font, textures->color); 
     }else{
         apply_text(renderer, 10, 10, 100, 33, "Menu", textures->font, textures->color);
+        apply_text(renderer, 10, 10, 100, 33, "Jouer", textures->font, textures->color);
+        apply_text(renderer, 10, 10, 100, 33, "Magasin", textures->font, textures->color);
+        apply_text(renderer, 10, 10, 100, 33, "Exit", textures->font, textures->color);
     }
    
     update_screen(renderer);
diff --git a/library/World/world.c b/library/World/world.c
index 07e0bdb29aa6fee37a4c83d78ba4cfbd3cefdbbf..dbbf35f8821d7383457551ccb82f10fbad46e21b 100644
--- a/library/World/world.c
+++ b/library/World/world.c
@@ -19,6 +19,10 @@ void update_data(world_t *world){
         allEvents(world);
 
         world->timer = SDL_GetTicks(); 
+    }else{
+        if (collidePoint(world->play, world->mouseX, world->mouseY)){
+            world->isMenu = false;
+        }
     }
 }
 
@@ -37,6 +41,8 @@ void init_data(world_t * world){
     init_walls(world);
     world->ligneArriver = init_sprite(world->ligneArriver, 0, -world->nb_lines_murs*METEORITE_SIZE-30 , SCREEN_WIDTH, FINISH_LINE_HEIGHT, 'z');
     
+    world->play = init_btn(0, 0, 100, 100);
+
     print_sprite(world->vaisseau);
     world->startTimer = SDL_GetTicks();
     world->timer = SDL_GetTicks();
@@ -44,6 +50,9 @@ void init_data(world_t * world){
     world->angle = 0.0;
     world->isFlipping = 0;
     world->isMenu = true;
+
+    world->mouseX = 0;
+    world->mouseY = 0;
 }
 
 
diff --git a/library/World/world.h b/library/World/world.h
index b580f78f0fa6fb5494e07f8879f816f1528dd72e..93d1abc3201ed2c0d336d5369148f29d211a9bd8 100644
--- a/library/World/world.h
+++ b/library/World/world.h
@@ -4,6 +4,7 @@
 #include "../../constante.c"
 #include "../../src/include/SDL2/SDL.h"
 #include <stdbool.h>
+#include "../menu/menu.h"
 
 /**
  * \file world.h
@@ -37,6 +38,9 @@ struct world_s{
     sprite_t *vaisseau ; /*!< Représentation du vaisseau */
     sprite_t **murs; /*<Représentation des météorites>*/
     sprite_t **murs2; /*<Représentation des météorites et de l'air>*/
+
+    btn_t *play;
+
     int nb_murs; // Nombre de météorites
     int nb_lines_murs; // Nombre de lignes de météorites
     sprite_t *ligneArriver;
@@ -48,6 +52,9 @@ struct world_s{
     double angle; // Angle de rotation de la map
     int isFlipping; // Indique si l'on est en train de faire une rotation de l'écran et dans quelle sens (0 : non droite, 1 : vers la droite, -1 : vers la gauche, -2 : non gauche)
     bool isMenu;
+
+    int mouseX;
+    int mouseY;
 };
 typedef struct world_s world_t;
 
diff --git a/library/menu/menu.c b/library/menu/menu.c
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6fb361e7d3274fb59745002c43e36ea9cb578fff 100644
--- a/library/menu/menu.c
+++ b/library/menu/menu.c
@@ -0,0 +1,19 @@
+#include "menu.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+btn_t *init_btn(int x, int y, int w, int h){
+    btn_t *btn = malloc(sizeof(btn_t));
+    btn->rect.x = x;
+    btn->rect.y = y;
+    btn->rect.w = w;
+    btn->rect.h = h;
+
+    return btn;
+}
+
+int collidePoint(btn_t *btn, int x, int y){
+    if (btn->rect.x > x && btn->rect.x + btn->rect.w < x && btn->rect.y > y && btn->rect.y + btn->rect.h < y;) return 1;
+    return 0;
+}
\ No newline at end of file
diff --git a/library/menu/menu.h b/library/menu/menu.h
index 0e52d5e7cf299601ac2b5dad594f78d201d4aa60..7857e54df020e28030ef26f24fdcb643734fac0e 100644
--- a/library/menu/menu.h
+++ b/library/menu/menu.h
@@ -2,7 +2,20 @@
 #include <stdlib.h>
 #include "../../src/include/SDL2/SDL.h"
 
+#ifndef DEF_CONSTANTES
+#define DEF_CONSTANTES 
+
+#define LARGEUR_FENETRE 704
+#define HAUTEUR_FENETRE 704
+
+
 struct btn{
     SDL_Rect rect;
-    SDL_Texture *texture;
-}
\ No newline at end of file
+}
+
+typedef struct btn_t ;
+
+btn_t *init_btn(int x, int y, int w, int h);
+int collidePoint(btn_t *btn, int x, int y);
+
+#endif
\ No newline at end of file
diff --git a/main.c b/main.c
index 28879a84b03370a3bc975de8e6392742ca7263e8..528cb883075f2b5d9f412a030f567113dd471382 100644
--- a/main.c
+++ b/main.c
@@ -32,6 +32,8 @@ void handle_events(SDL_Event *event,world_t *world){
             world->vaisseau->x += MOVING_STEP;
         }
     }
+    SDL_GetMouseState(&world->mouseX, &world->mouseY);
+
 
     while( SDL_PollEvent( event ) ) {