diff --git "a/L\303\251o/Champs.py" "b/L\303\251o/Champs.py"
index 3ec9ec9325facb6b3ccaaab12ed74e00e5127937..8a45e5c490181dcbbee392c083b4e966382c9c8e 100755
--- "a/L\303\251o/Champs.py"
+++ "b/L\303\251o/Champs.py"
@@ -1,154 +1,58 @@
 import pygame
-from Champs import *
 import numpy as np
-from Camera import *
 
-RAYON_MUR_INVISIBLE = 2000
-SAISONS = ["Printemps", "Été", "Automne", "Hiver"]
-MOIS = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]
-
-class Game:
-    def __init__ (self, screen):
-        self.screen = screen
-        self.screenSize = np.array(self.screen.get_size())
-        self.score = 0
-        self.money = 10000
-        self.displayMoney = 10000
-        self.month = 0
-        #self.champs = [Houblon((0,0)), Houblon((-200,0)), Houblon((0,-200)), Buisson((400,0)), Buisson((0,400)), Houblon((1000,1000))]#Houblon((100,100)), Houblon((400,100)), Houblon((700,100)), Houblon((100,300)), Houblon((400,300)), Houblon((700,300)), Houblon((100,500)), Houblon((400,500)), Buisson((700,500))]
-        self.champs = []
-        for i in range(12):
-            self.champs.append(Buisson(((i%4)*300-550,(i//4)*200-300)))
-        self.clock = pygame.time.Clock()
-        self.selectedChamp = None
-        self.imageMoney = pygame.image.load("../assets/money.png")
-        self.imageMoney = pygame.transform.scale(self.imageMoney, np.array(self.imageMoney.get_size())/3)
-        self.police = pygame.font.SysFont("Alef", 30)
-        self.camera = Camera(np.array(self.screen.get_size())/2)
-        self.background = pygame.image.load('../assets/terre.png')
-        self.background = pygame.transform.scale(self.background, (self.screen.get_width(), self.screen.get_height()))
-        self.pluie = pygame.image.load('../assets/pluie.png')
-        self.pluie = pygame.transform.scale(self.pluie, (200,200))
-        self.frame = 0
-        self.buyFrame = -1000
-        self.grange = pygame.image.load('../assets/grange.webp')
-        self.grange = pygame.transform.scale(self.grange, (self.screen.get_width(), self.screen.get_height()))
-        self.flecheChangementdroite = pygame.image.load("../assets/flecheScene.png")
-        self.flecheChangementgauche = pygame.image.load("../assets/flecheScene2.png")
-        self.flecheChangementdroite = pygame.transform.scale(self.flecheChangementdroite, (100,100))
-        self.flecheChangementgauche = pygame.transform.scale(self.flecheChangementgauche, (100,100))
-        self.coordonnee_image_droite = self.screenSize[0]-self.flecheChangementdroite.get_width() - 10, self.screenSize[1]/2
-        self.coordonnee_image_gauche = 10, self.screenSize[1]/2
-        self.rectangle_button_fleche = pygame.rect.Rect(*self.coordonnee_image_droite,100,100)
-        self.rectangle_button_fleche_gauche = pygame.rect.Rect(*self.coordonnee_image_gauche,100,100)
-    
-    def gameLoop (self):
-        while True:
-            self.screen.blit(self.background, (0,0))
-
-            # Météo
-            pygame.draw.rect(self.screen, (127, 127, 127), (0, self.screen.get_height() - 200, 200, 200))
-            self.screen.blit(self.pluie, (0, self.screen.get_height() - 200))
-
-            # Saison
-            surface = self.police.render(SAISONS[self.month%4], False, (0,0,0))
-            self.screen.blit(surface, (0, self.screen.get_height() - surface.get_height()))
-
-            isChamp = False
-            # Affichage des champs
-            for champ in self.champs:
-                champ.draw(self.screen, self.camera)
-
-            # Affiche les fps
-            fpsText = self.police.render(("%.0f fps" %(self.clock.get_fps())), True, (180,180,180))
-            self.screen.blit(fpsText, (self.screen.get_width() - fpsText.get_width(), 0))
-
-            if self.money < self.displayMoney:
-                self.displayMoney -= 500 # Si quelque chose coûte moins que 100, changer par -= min(100, self.displayMoney - self.money)
-            elif self.money > self.displayMoney:
-                self.displayMoney += 500 # Si quelque chose coûte moins que 100, changer par -= min(100, self.money - self.displayMoney)
-
-            textMoney = self.police.render(str(self.displayMoney), True, (255,255,255))
-            pygame.draw.rect(self.screen, (0,0,0), (200, self.screen.get_height() - 50, 100, 50))
-            self.screen.blit(textMoney, (200, self.screen.get_height()-30))
-            self.screen.blit(self.imageMoney, (300, self.screen.get_height()-self.imageMoney.get_height()))
-            
-            self.screen.blit(self.flecheChangementdroite, self.coordonnee_image_droite)
-
-            for event in pygame.event.get():
-                if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
-                    exit()
-                elif event.type == pygame.MOUSEBUTTONDOWN and (*event.pos,0,0) in self.rectangle_button_fleche:
-                    self.gameLoopSecondScreen()
-                elif event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
-                    self.gameLoopSecondScreen()
-                elif event.type == pygame.MOUSEMOTION:
-                    if event.buttons[2] == 1: #maintenir enfoncé clic droit
-                        self.camera.setPosition(np.array(event.rel))
-
-                    for champ in self.champs:
-                        if champ.rectScale.contains(event.pos[0],event.pos[1],0,0):
-                            self.selectedChamp = champ
-                            isChamp = True
-                
-                    if not isChamp:
-                        self.selectedChamp = None
-                
-                elif event.type == pygame.MOUSEWHEEL:
-                    self.camera.zoomInOut(event.y)
-
-                # Achat d'un champ
-                elif event.type == pygame.MOUSEBUTTONDOWN:
-                    if event.button == 1:
-                        for champ in self.champs:
-                            if isinstance(champ, Buisson):
-                                if champ.rectScale.contains(event.pos[0],event.pos[1],0,0):
-                                    if self.money >= champ.prix:
-                                        self.moneyChange = self.police.render(str(-champ.prix), True, (255,0,0))
-
-                                        self.buyFrame = self.frame
-                                    
-                                        self.champs.append(champ.buyField())
-                                        self.champs.remove(champ)
-                                        self.money -= champ.prix
-                                    else:
-                                        self.moneyError()
-                                    
-
-            if self.frame < self.buyFrame + 20:
-                self.screen.blit(self.moneyChange, (200, self.screen.get_height()-textMoney.get_height()*4-(self.frame-self.buyFrame)*1.5))
-
-            if self.selectedChamp:
-                self.selectedChamp.showInfo(self.screen, self.camera)
-
-            pygame.display.update()
-            self.clock.tick(50)
-            self.frame += 1
-
-    def moneyError (self):
-        loop = True
-        while loop:
-            popUp = pygame.draw.rect(self.screen, (0,0,0), (self.screenSize/3, self.screenSize/3))
-
-            for event in pygame.event.get(pygame.MOUSEBUTTONDOWN):
-                if popUp.contains((*event.pos,0,0)):
-                    loop = False
-                    break
-
-            pygame.display.update()
-            self.clock.tick(50)
-
-    def gameLoopSecondScreen (self):
-        while True:
-            self.screen.blit(self.grange, (0,0))
-            self.screen.blit(self.flecheChangementgauche, self.coordonnee_image_gauche)
-
-            for event in pygame.event.get():
-                if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
-                    exit()
-                elif event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
-                    return
-                elif event.type == pygame.MOUSEBUTTONDOWN and (*event.pos,0,0) in self.rectangle_button_fleche_gauche:
-                    self.gameLoop()
-            pygame.display.update()
-            self.clock.tick(50)
+class Champs:
+    def __init__ (self, tempature, humidite, tempsAvantMaturation, pos, image):
+        self.temperature = tempature
+        self.humidite = humidite
+        self.TAM = tempsAvantMaturation
+        self.pos = np.array(pos)
+        self.image = image
+        self.imageSize = np.array(self.image.get_size())
+        self.rect = pygame.rect.Rect(self.pos, self.image.get_rect().size)
+        self.rectScale = self.rect
+        self.police = pygame.font.SysFont("Alef", 22) #pygame.font.get_fonts() -> liste des fonts
+        self.imgZoom = pygame.transform.scale(self.image, self.imageSize)
+
+    def draw (self, screen, camera):
+        scaleImage = camera.scaleImage(self.image)
+
+        if scaleImage: # != None
+            self.imgZoom = scaleImage
+            self.rectScale = pygame.rect.Rect(camera.convertLocation(self.pos), self.imgZoom.get_size())
+        
+        screen.blit(self.imgZoom, camera.convertLocation(self.pos))
+
+    def changeText (self, camera):
+        scaleText = camera.scaleImage(self.text)
+        if scaleText:
+            self.zoomText = scaleText
+
+class Houblon (Champs):
+    def __init__ (self, pos):
+        super().__init__(0, 0, 0, pos, pygame.image.load('../assets/champ.png'))
+        self.text = self.police.render("Température : " + str(self.temperature), False, (0,0,0))
+        self.zoomText = self.text
+
+    def showInfo (self, screen, camera):
+        pygame.draw.rect(screen, (255, 255, 255), pygame.rect.Rect(camera.convertLocation(self.pos), np.array(self.rect.size)*0.75*abs(camera.zoom)))
+        self.changeText(camera)
+
+        screen.blit(self.zoomText, camera.convertLocation(self.pos))
+
+class Buisson (Champs):
+    def __init__ (self, pos, prix = 10000):
+        super().__init__(0, 0, 0, pos, pygame.image.load('../assets/buissonCadenas.png'))
+        self.prix = prix
+        self.text = self.police.render("Champ disponible à l'achat : " + str(self.prix), False, (0,0,0))
+        self.zoomText = self.text
+
+    def showInfo (self, screen, camera):
+        pygame.draw.rect(screen, (255, 255, 255), pygame.rect.Rect(camera.convertLocation(self.pos), np.array(self.rect.size)*0.75*abs(camera.zoom)))
+        self.changeText(camera)
+
+        screen.blit(self.zoomText, camera.convertLocation(self.pos))
+
+    def buyField (self):
+        # Clique sur buisson -> Pop up "Êtes-vous certain ?" -> Oui ? -> Supprime le buisson de la liste et ajoute un Houblon aux mêmes coordonnées
+        return Houblon(self.pos)
diff --git "a/L\303\251o/Game.py" "b/L\303\251o/Game.py"
index 61f25f25ea8d81022c6b7a93308a8992e15ecd64..e2aac7cf50ec45975e56c974c468eee9179371ba 100755
--- "a/L\303\251o/Game.py"
+++ "b/L\303\251o/Game.py"
@@ -1,213 +1,154 @@
-import pygame
-from Champs import *
-import numpy as np
-
-RAYON_MUR_INVISIBLE = 2000
-
-class Game:
-    def __init__ (self, screen):
-        self.screen = screen
-        self.screenSize = np.array(self.screen.get_size())
-        self.score = 0
-        self.money = 10000
-        self.displayMoney = 10000
-        self.month = "janvier"
-        #self.champs = [Houblon((-600,0)), Houblon((-300,0)), Houblon((100,0)), Houblon((300,0))
-        #Houblon((-800,-200)), Houblon((-500,-200)), Buisson((-200,-200)), Buisson((100,-200)), Buisson((400,-200)),
-        self.champs=[]
-        for i in range(12):
-            if i in (8,9,10):
-                self.champs.append(Houblon(((i%4)*300-550,(i//4)*200-300)))
-            else:
-                self.champs.append(Buisson(((i%4)*300-550,(i//4)*200-300)))
-
-        #Houblon((100,100)), Houblon((400,100)), Houblon((700,100)), Houblon((100,300)), Houblon((400,300)), Houblon((700,300)), Houblon((100,500)), Houblon((400,500)), Buisson((700,500))]
-        self.clock = pygame.time.Clock()
-        self.selectedChamp = None
-        self.imageMoney = pygame.image.load("../assets/money.png")
-        self.imageMoney = pygame.transform.scale(self.imageMoney, np.array(self.imageMoney.get_size())/3)
-        self.police = pygame.font.SysFont("Alef", 30)
-        self.camera = Camera(np.array(self.screen.get_size())/2)
-        self.background = pygame.image.load('../assets/terre.png')
-        self.background = pygame.transform.scale(self.background, (self.screen.get_width(), self.screen.get_height()))
-        self.pluie = pygame.image.load('../assets/pluie.png')
-        self.pluie = pygame.transform.scale(self.pluie, (200,200))
-        self.flecheChangementscene = pygame.image.load("../assets/flecheScene.png")
-        self.flecheChangementscene = pygame.transform.scale(self.flecheChangementscene, (100,100))
-        self.coordonnee_image = self.screenSize[0]-self.flecheChangementscene.get_width() - 10 ,self.screenSize[1]/2
-        self.rectangle_button_fleche = pygame.rect.Rect(*self.coordonnee_image,100,100)
-        self.grange = pygame.image.load('../assets/grange.webp')
-        self.grange = pygame.transform.scale(self.grange, (self.screen.get_width(), self.screen.get_height()))
-        self.frame = 0
-        self.buyFrame = -1000
-    
-    def gameLoop (self):
-        while True:
-            self.screen.blit(self.background, (0,0))
-
-            # Météo
-            self.carre_meteo = pygame.draw.rect(self.screen, (127, 127, 127), (0, self.screen.get_height() - 200 , 200, 200))
-            self.screen.blit(self.pluie, (0, self.screen.get_height()-200))
-            
-                
-
-            isChamp = False
-            # Affichage des champs
-            for champ in self.champs:
-                champ.draw(self.screen, self.camera)
-
-            # Affiche les fps
-            fpsText = self.police.render(("%.0f fps" %(self.clock.get_fps())), True, (180,180,180))
-            self.screen.blit(fpsText, (self.screen.get_width() - fpsText.get_width(), 0))
-
-            # somme ajoutée ou enlevée au-dessus puis s'ajoute
-
-            if self.money < self.displayMoney:
-                self.displayMoney -= 100 # Si quelque chose coûte moins que 100, changer par -= min(100, self.displayMoney - self.money)
-            elif self.money > self.displayMoney:
-                self.displayMoney += 100 # Si quelque chose coûte moins que 100, changer par -= min(100, self.money - self.displayMoney)
-
-            textMoney = self.police.render(str(self.displayMoney), True, (255,255,255))
-            self.screen.blit(textMoney, (210, self.screen.get_height()-textMoney.get_height()*2))
-            self.screen.blit(self.imageMoney, (220+textMoney.get_width(), self.screen.get_height()-self.imageMoney.get_height()))
-
-            print(self.clock.get_time())
-            print(self.clock.get_rawtime())
-
-                        
-            self.screen.blit(self.flecheChangementscene, self.coordonnee_image)
-           
-            for event in pygame.event.get():
-                if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
-                    exit()
-                elif event.type == pygame.MOUSEBUTTONDOWN and (*event.pos,0,0) in self.rectangle_button_fleche:
-                    self.gameLoopSecondScreen()
-                elif event.type == pygame.MOUSEMOTION:
-                    if event.buttons[2] == 1: #maintenir enfoncé clic droit
-                        self.camera.setPosition(np.array(event.rel))
-
-                    for champ in self.champs:
-                        if champ.rectScale.contains(event.pos[0],event.pos[1],0,0):
-                            self.selectedChamp = champ
-                            isChamp = True
-                
-                    if not isChamp:
-                        self.selectedChamp = None
-                
-                elif event.type == pygame.MOUSEWHEEL:
-                    self.camera.zoomInOut(event.y)
-
-                # Achat d'un champ
-                elif event.type == pygame.MOUSEBUTTONDOWN:
-                    if event.button == 1:
-                        for champ in self.champs:
-                            if isinstance(champ, Buisson):
-                                if champ.rectScale.contains(event.pos[0],event.pos[1],0,0):
-                                    if self.money >= champ.prix:
-                                        self.moneyChange = self.police.render(str(-champ.prix), True, (255,0,0))
-
-                                        self.buyFrame = self.frame
-                                    
-                                        self.champs.append(champ.buyField())
-                                        self.champs.remove(champ)
-                                        self.money -= champ.prix
-                                    else:
-                                        self.moneyError()
-                                    
-
-              
-
-            if self.frame < self.buyFrame + 100:
-                self.screen.blit(self.moneyChange, (210, self.screen.get_height()-textMoney.get_height()*4-(self.frame-self.buyFrame)*1.25))
-
-            if self.selectedChamp:
-                self.selectedChamp.showInfo(self.screen, self.camera)
-
-            if self.carre_meteo.collidepoint(pygame.mouse.get_pos()):
-  
-                self.showInfoWeatherInterface()
-     
-
-            pygame.display.update()
-            self.clock.tick(50)
-            self.frame += 1
-
-    def moneyError (self):
-        loop = True
-        while loop:
-            popUp = pygame.draw.rect(self.screen, (0,0,0), (self.screenSize/3, self.screenSize/3))
-
-            for event in pygame.event.get(pygame.MOUSEBUTTONDOWN):
-                if popUp.contains((*event.pos,0,0)):
-                    loop = False
-                    break
-
-            pygame.display.update()
-            self.clock.tick(50)
-
-    def showInfoWeatherInterface(self):
-        estFini = self.carre_meteo.collidepoint(pygame.mouse.get_pos())
-        popUp = pygame.draw.rect(self.screen, (20,125,125,0.5), (self.screenSize/3, self.screenSize/3))
-        while True:
-            
-            for event in pygame.event.get(pygame.MOUSEMOTION):
-                if (*event.pos,0,0) not in popUp:
-                    return 
-                
-
-        pygame.display.update()
-        self.clock.tick(50)
-        
-    def gameLoopSecondScreen (self):
-        while True:
-            self.screen.blit(self.grange, (0,0))
-
-            for event in pygame.event.get():
-                if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
-                    exit()
-                elif event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
-                    return
-
-            pygame.display.update()
-            self.clock.tick(50)
-                
-
-class Camera:
-    def __init__ (self, screenMid):
-        self.mid = screenMid
-        self.zoom = 1 # zoom actuel
-        self.lastZoom = 1.1 # dernier zoom
-        self.position = np.array([0,0]) # position du point visé (ici le milieu de l'écran)
-
-    def convertLocation (self, c1:np.array)->np.array: # Convertie les coordonnées de l'écran en coordonnées sur le jeu
-        c2 = (c1 * self.zoom) + self.mid + (self.position * self.zoom)
-        return c2
-
-    def changeScreenLocation (self, c2:np.array)->np.array: # Convertie les coordonnées du jeu en coordonnées de l'écran
-        c1 = (c2 - self.mid - (self.position / self.zoom)) / self.zoom
-        return c1
-
-    def zoomInOut (self, y): # Zoom en fonction de la molette
-        self.lastZoom = self.zoom
-        self.zoom += y*0.1
-
-        self.zoom = np.clip(self.zoom, 0.3, 2) # zoom min max
-
-    def setPosition (self, positionRelative): # Calcule la nouvelle position de l'écran
-        newPos = self.position + positionRelative
-
-        # Pour faire un carré (mur invisible) : 
-        self.position = np.clip(newPos, [-1000, -1000], [1000, 1000])
-
-        # Pour faire un cercle :
-        #if np.linalg.norm(newPos) < RAYON_MUR_INVISIBLE:
-            #self.position = newPos
-
-    def __repr__ (self):
-        return f"Zoom = {self.zoom}\nPosition = {self.position}\n"
-
-    def scaleImage (self, img): # Change le zoom d'une image si nécessaire
-        if self.zoom != self.lastZoom:
-            return pygame.transform.scale(img, np.array(img.get_size())*self.zoom)
-
-        return None
\ No newline at end of file
+import pygame
+from Champs import *
+import numpy as np
+from Camera import *
+
+RAYON_MUR_INVISIBLE = 2000
+SAISONS = ["Printemps", "Été", "Automne", "Hiver"]
+MOIS = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]
+
+class Game:
+    def __init__ (self, screen):
+        self.screen = screen
+        self.screenSize = np.array(self.screen.get_size())
+        self.score = 0
+        self.money = 10000
+        self.displayMoney = 10000
+        self.month = 0
+        #self.champs = [Houblon((0,0)), Houblon((-200,0)), Houblon((0,-200)), Buisson((400,0)), Buisson((0,400)), Houblon((1000,1000))]#Houblon((100,100)), Houblon((400,100)), Houblon((700,100)), Houblon((100,300)), Houblon((400,300)), Houblon((700,300)), Houblon((100,500)), Houblon((400,500)), Buisson((700,500))]
+        self.champs = []
+        for i in range(12):
+            self.champs.append(Buisson(((i%4)*300-550,(i//4)*200-300)))
+        self.clock = pygame.time.Clock()
+        self.selectedChamp = None
+        self.imageMoney = pygame.image.load("../assets/money.png")
+        self.imageMoney = pygame.transform.scale(self.imageMoney, np.array(self.imageMoney.get_size())/3)
+        self.police = pygame.font.SysFont("Alef", 30)
+        self.camera = Camera(np.array(self.screen.get_size())/2)
+        self.background = pygame.image.load('../assets/terre.png')
+        self.background = pygame.transform.scale(self.background, (self.screen.get_width(), self.screen.get_height()))
+        self.pluie = pygame.image.load('../assets/pluie.png')
+        self.pluie = pygame.transform.scale(self.pluie, (200,200))
+        self.frame = 0
+        self.buyFrame = -1000
+        self.grange = pygame.image.load('../assets/grange.webp')
+        self.grange = pygame.transform.scale(self.grange, (self.screen.get_width(), self.screen.get_height()))
+        self.flecheChangementdroite = pygame.image.load("../assets/flecheScene.png")
+        self.flecheChangementgauche = pygame.image.load("../assets/flecheScene2.png")
+        self.flecheChangementdroite = pygame.transform.scale(self.flecheChangementdroite, (100,100))
+        self.flecheChangementgauche = pygame.transform.scale(self.flecheChangementgauche, (100,100))
+        self.coordonnee_image_droite = self.screenSize[0]-self.flecheChangementdroite.get_width() - 10, self.screenSize[1]/2
+        self.coordonnee_image_gauche = 10, self.screenSize[1]/2
+        self.rectangle_button_fleche = pygame.rect.Rect(*self.coordonnee_image_droite,100,100)
+        self.rectangle_button_fleche_gauche = pygame.rect.Rect(*self.coordonnee_image_gauche,100,100)
+    
+    def gameLoop (self):
+        while True:
+            self.screen.blit(self.background, (0,0))
+
+            # Météo
+            pygame.draw.rect(self.screen, (127, 127, 127), (0, self.screen.get_height() - 200, 200, 200))
+            self.screen.blit(self.pluie, (0, self.screen.get_height() - 200))
+
+            # Saison
+            surface = self.police.render(SAISONS[self.month%4], False, (0,0,0))
+            self.screen.blit(surface, (0, self.screen.get_height() - surface.get_height()))
+
+            isChamp = False
+            # Affichage des champs
+            for champ in self.champs:
+                champ.draw(self.screen, self.camera)
+
+            # Affiche les fps
+            fpsText = self.police.render(("%.0f fps" %(self.clock.get_fps())), True, (180,180,180))
+            self.screen.blit(fpsText, (self.screen.get_width() - fpsText.get_width(), 0))
+
+            if self.money < self.displayMoney:
+                self.displayMoney -= 500 # Si quelque chose coûte moins que 100, changer par -= min(100, self.displayMoney - self.money)
+            elif self.money > self.displayMoney:
+                self.displayMoney += 500 # Si quelque chose coûte moins que 100, changer par -= min(100, self.money - self.displayMoney)
+
+            textMoney = self.police.render(str(self.displayMoney), True, (255,255,255))
+            pygame.draw.rect(self.screen, (0,0,0), (200, self.screen.get_height() - 50, 100, 50))
+            self.screen.blit(textMoney, (200, self.screen.get_height()-30))
+            self.screen.blit(self.imageMoney, (300, self.screen.get_height()-self.imageMoney.get_height()))
+            
+            self.screen.blit(self.flecheChangementdroite, self.coordonnee_image_droite)
+
+            for event in pygame.event.get():
+                if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
+                    exit()
+                elif event.type == pygame.MOUSEBUTTONDOWN and (*event.pos,0,0) in self.rectangle_button_fleche:
+                    self.gameLoopSecondScreen()
+                elif event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
+                    self.gameLoopSecondScreen()
+                elif event.type == pygame.MOUSEMOTION:
+                    if event.buttons[2] == 1: #maintenir enfoncé clic droit
+                        self.camera.setPosition(np.array(event.rel))
+
+                    for champ in self.champs:
+                        if champ.rectScale.contains(event.pos[0],event.pos[1],0,0):
+                            self.selectedChamp = champ
+                            isChamp = True
+                
+                    if not isChamp:
+                        self.selectedChamp = None
+                
+                elif event.type == pygame.MOUSEWHEEL:
+                    self.camera.zoomInOut(event.y)
+
+                # Achat d'un champ
+                elif event.type == pygame.MOUSEBUTTONDOWN:
+                    if event.button == 1:
+                        for champ in self.champs:
+                            if isinstance(champ, Buisson):
+                                if champ.rectScale.contains(event.pos[0],event.pos[1],0,0):
+                                    if self.money >= champ.prix:
+                                        self.moneyChange = self.police.render(str(-champ.prix), True, (255,0,0))
+
+                                        self.buyFrame = self.frame
+                                    
+                                        self.champs.append(champ.buyField())
+                                        self.champs.remove(champ)
+                                        self.money -= champ.prix
+                                    else:
+                                        self.moneyError()
+                                    
+
+            if self.frame < self.buyFrame + 20:
+                self.screen.blit(self.moneyChange, (200, self.screen.get_height()-textMoney.get_height()*4-(self.frame-self.buyFrame)*1.5))
+
+            if self.selectedChamp:
+                self.selectedChamp.showInfo(self.screen, self.camera)
+
+            pygame.display.update()
+            self.clock.tick(50)
+            self.frame += 1
+
+    def moneyError (self):
+        loop = True
+        while loop:
+            popUp = pygame.draw.rect(self.screen, (0,0,0), (self.screenSize/3, self.screenSize/3))
+
+            for event in pygame.event.get(pygame.MOUSEBUTTONDOWN):
+                if popUp.contains((*event.pos,0,0)):
+                    loop = False
+                    break
+
+            pygame.display.update()
+            self.clock.tick(50)
+
+    def gameLoopSecondScreen (self):
+        while True:
+            self.screen.blit(self.grange, (0,0))
+            self.screen.blit(self.flecheChangementgauche, self.coordonnee_image_gauche)
+
+            for event in pygame.event.get():
+                if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
+                    exit()
+                elif event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
+                    return
+                elif event.type == pygame.MOUSEBUTTONDOWN and (*event.pos,0,0) in self.rectangle_button_fleche_gauche:
+                    self.gameLoop()
+            pygame.display.update()
+            self.clock.tick(50)
\ No newline at end of file