import gamedata.objects.menu.menu as menu class MainMenu(menu.Menu): def __init__(self,x,y,game,w=100,h=100): super().__init__(x,y,game,w,h) # initialise l'objet de base avec les bons arguments # Buttons dictionnaries def fnPlay(self,game): game.scene = game.scenes.ingame btnPlay = {"name":"Play","function":fnPlay} def fnOptions(self,game): game.scene = game.scenes.options btnOptions= {"name":"Options","function": fnOptions} def fnQuit(self,game): game.running = False btnQuit= {"name":"Quit","function": fnQuit} # Spacing between buttons self.vpadding = 20 self.hpadding = 20 # Initialising grid self.grid = [ [btnPlay], [btnOptions], [btnQuit] ] self.create(self.grid,self.rect) self.depth = -1 # Shadow sprite shadow = game.sprite_lib["shadow.png"] self.shadow = game.pygame.transform.scale(shadow,(1000,1000)) # J'augmente la taille de l'ombre # Animation timer self.timer = game.lib.Timer(1.5) self.buttonsmaxoffset = 400 self.buttonsoffset = 400 self.titleoffset = 400 self.titlemaxoffset = 400 self.stop = False def step(self): super().step() if not self.stop and self.timer.tick(self.game.dt): self.stop = True self.buttonsoffset = 0 if not self.stop: self.buttonsoffset = self.timer.getratio()**4*self.buttonsmaxoffset self.titleoffset = 0 if not self.stop: self.titleoffset = self.timer.getratio()**4*self.titlemaxoffset # Move the buttons for btn in self.lbuttons: btn.rect[1] = btn.baserect[1]+self.buttonsoffset def draw(self): # Shadow self.game.lib.drawcenter(self.game,self.shadow,self.game.DISPLAY_WIDTH/2,self.game.DISPLAY_HEIGHT*3/5+self.buttonsoffset) # Display game title self.game.lib.drawcenter(self.game,self.game.sprite_lib["gui/title.png"],self.game.DISPLAY_WIDTH/2,self.baserect[1]-self.game.DISPLAY_HEIGHT/8-self.titleoffset)