def main(): # Initialisation de la fenêtre d'affichage pygame.init() Config.screen = pygame.display.set_mode( (Config.screenWidth, Config.screenHeight), HWSURFACE | DOUBLEBUF) pygame.display.set_caption(Config.titre) # le son pygame.mixer.init(44100, -16, 2, 4096) # le logo d'hommage ^^ Config.logo, Config.logo_r = Tools.load_png('logo.png') # les bords de la surface de jeu Config.bords = Border.Border() # le niveau Level.LoadLevel(Config.level) if Config.bossLevel: # niveau d'un boss Boss.doBossLevel() else: # le fond Tools.InitBG() Tools.ReadHighScore() # la zone d'info Config.zinfo = pygame.Surface([(Config.screenWidth - Config.bords.width), Config.screenHeight]) Config.zinfo.fill(THECOLORS["black"]) # Le joueur (la raquette) Config.player = Player.Bat('player-bat-02.png', 'player-bat-02-L.png', 'player-bat-02-S.png') # La première balle Ball.BallInit() # les ennemis Enemys.init() # les sons Tools.InitSounds() pygame.mixer.music.set_volume((Config.Volume / 100)) # Affichage Config.screen.blit(Config.bg, (0, 0)) Config.bords.draw() Tools.MsgInfo() Level.DrawLevel() Config.player.draw() Ball.Ballsdraw() Enemys.draw() pygame.display.flip() # Initialisation de l'horloge Config.clock = pygame.time.Clock() # timer user pour la màj des fps (déclenché 1 fois/seconde) pygame.time.set_timer(USEREVENT, 1000) # timer pour la génération des ennemis (déclenché toutes les 10s) pygame.time.set_timer((USEREVENT + 1), 10000) # timer pour la génération des bombes et missiles du boss (déclenché toutes les 5s) pygame.time.set_timer((USEREVENT + 2), 5000) Config.Sounds['intro'].play() # Boucle d'évènements while True: event_handler() dt = Config.clock.tick(Config.FPS) / 1000 Ball.Ballsupdate() if Config.Perdu: Config.life -= 1 if Config.life > 0: Tools.MsgCenter("Oops...", 28, Config.zinfo.get_rect().centery, "cyan", True) pygame.display.flip() # petite tempo pygame.time.wait(1500) Config.Perdu = False Bonus.initBonus() Config.player.reset() Ball.BallInit() else: # perdu... Tools.GameOver() else: if Config.bossLevel: if Config.boss.update(): Config.life -= 1 if Config.life <= 0: # perdu... Tools.GameOver() Config.player.update() Bonus.update() Enemys.update() if Config.bossLevel: if Config.boss.isDead: # niveau suivant Tools.MsgCenter("!! Bravo !!", 28, Config.zinfo.get_rect().centery, "blue", True) pygame.display.flip() # petite tempo pygame.time.wait(5000) Tools.NextLevel() if Level.FinishedLevel(): # niveau suivant Tools.MsgCenter("Level UP!", 28, Config.zinfo.get_rect().centery, "green", True) pygame.display.flip() # petite tempo pygame.time.wait(1500) Tools.NextLevel() # affichages Config.screen.blit(Config.bg, (0, 0)) Config.bords.draw() Tools.MsgInfo() Level.DrawLevel() Config.player.draw() Ball.Ballsdraw() Bonus.draw() Bonus.drawAdds() Enemys.draw() pygame.display.flip()