Esempio n. 1
0
    def jouer(self):     
        ##### PARAMETRES DE LA FENETRE #####
        size = width, height = 1024,768
        screen = pygame.display.set_mode(size, pygame.FULLSCREEN)
        pygame.mouse.set_visible(False)
        ##### COMPTEURS #####
        distanceTemp = 0
        distance = 2
        distanceLevelTemp = 0
        level = 1
        ##### EXPLOSIONS #####
        imagesTemp = [(pygame.transform.scale(pygame.image.load("images/ingame/explosion/explosion"+str(compt)+".png"), (70, 70)), 0.6) for compt in range(2,6)]
        animObj = pyganim.PygAnimation(imagesTemp, loop=False)
        imagesTemp = [(pygame.image.load("images/ingame/reachedRecord3.png"), 0.15), (pygame.image.load("images/ingame/reachedRecord2.png"),0.15), (pygame.image.load("images/ingame/reachedRecord1.png"),0.4)]
        animReachedRecord = pyganim.PygAnimation(imagesTemp, loop=False)
        ##### IMAGES DU BACKGROUND #####
        background = pygame.image.load("images/background/background.jpg")
        i=0
        isRecordBattu=False
        ##### JOUEUR #####
        monVaisseau = Ship.ship([20, 0], self.player)
        monVaisseau.raiseChaleurMax(self.player.additionalMissiles)
        
        '''self.player.updateShopStateList(3,-1)'''

        if self.player.shopStateList[3]==1:
            monVaisseau.versionCanon=4
        elif self.player.shopStateList[2]==1:
            monVaisseau.versionCanon=3
        elif self.player.shopStateList[1]==1:
            monVaisseau.versionCanon=2
        else:
            monVaisseau.versionCanon=1
            
        if self.player.shopStateList[4]==1:
            monVaisseau.boosterOn = True
            if self.player.shopStateList[5]==1:
                monVaisseau.spoilerOn = True
        
        ##### MUSIQUE #####
        if self.player.musicOn:
            self.music.play(-1)
        ##### MENU COMMENCER #####
        menuStartOn=True
        
        musicAfterRecord = False
        '''################################################################## ''
        ''   BOUCLE DE JEU                                                    ''
        ''      (img par img)                                                 ''
        '' ##################################################################'''
        while 1:
            ''' VITESSE D'AFFICHAGE '''    
            clock = pygame.time.Clock()
            FRAMES_PER_SECOND = 35
            deltat = clock.tick(FRAMES_PER_SECOND)
            '''APPUYER SUR ENTRER POUR COMMENCER'''
            while menuStartOn:
                screen.blit(pygame.image.load("images/menu/menu_start_game/background_start_menu.jpeg"),(0,10))
                pygame.display.flip()
                for event in pygame.event.get():
                    if event.type == pygame.QUIT: sys.exit()
                    elif event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_RETURN:
                            menuStartOn=False
                        elif event.key == pygame.K_ESCAPE:
                            self.music.stop()
                            self.musicAfterRecord.stop()
                            ecranAccueil = Menu.Menu("images/menu/menu.jpg", self.player)
                            ecranAccueil.addButton(Bouton.BoutonStartGame("images/menu/menu_principal/titles/play.png",0, 270, self.player, True))
                            ecranAccueil.addButton(Bouton.BoutonOption("images/menu/menu_principal/titles/option.png",0, 340, self.player))
                            ecranAccueil.addButton(Bouton.BoutonCredits("images/menu/menu_principal/titles/credits.png",0, 415))
                            ecranAccueil.addButton(Bouton.BoutonQuit("images/menu/menu_principal/titles/quit.png",0, 485))
                            ecranAccueil.afficher()
                                
            
            ''' COMMANDES CLAVIER '''
            for event in pygame.event.get():
                if event.type == pygame.QUIT: sys.exit()
                ##### APPUI SUR TOUCHE #####
                elif event.type == pygame.KEYDOWN:
                    # HAUT
                    if event.key == pygame.K_UP:
                        if not monVaisseau.monte:
                            monVaisseau.monte=True
                            if self.player.soundOn:
                                monVaisseau.son.play(-1)
                    # ESPACE
                    elif event.key == pygame.K_SPACE:
                        if not monVaisseau.inCharge:
                            monVaisseau.inCharge=True
                    # RIGHT
                    elif event.key == pygame.K_RIGHT:
                        if not monVaisseau.inBoost:
                            monVaisseau.inBoost=True
                    # LEFT
                    elif event.key == pygame.K_LEFT:
                        if not monVaisseau.inBreak:
                            monVaisseau.inBreak=True
                    # ECHAPE
                    elif event.key == pygame.K_ESCAPE:
                        menuPause = Menu.menuPause("images/menu/menu_pause/background_menu_pause.png", self.player)
                        menuPause.addButton(Bouton.BoutonReprendre("images/menu/menu_pause/reprendre.png", 445, 410, True))
                        menuPause.addButton(Bouton.BoutonMenuPrincipal("images/menu/menu_pause/menu_principal.png", 474, 447, self.player))
                        menuPause.afficher(screen, self)
                ##### RELACHE TOUCHE #####
                elif event.type == pygame.KEYUP:
                    # HAUT
                    if event.key == pygame.K_UP:
                        monVaisseau.monte=False
                        monVaisseau.son.stop()
                    # ESPACE
                    elif event.key == pygame.K_SPACE:
                        monVaisseau.tir(self.missiles);
                    # RIGHT
                    elif event.key == pygame.K_RIGHT:
                        monVaisseau.inBoost=False
                    # LEFT
                    elif event.key == pygame.K_LEFT:
                        monVaisseau.inBreak=False
            ##### BACKGROUND #####
            screen.blit(background, (-i,0)) 
            screen.blit(background, (13262-i,0))            
            i+=1
            if i > 13262:
                i=0
            ##### RECORD PRECEDENT #####
            if not isRecordBattu:
                if distance+35==self.player.record:
                    self.creerObstacle(width, height, -1)
                    isRecordBattu=True
            if not self.isRecordBattu:
                if distance>self.player.record:
                    self.isRecordBattu=True
            if self.player.musicOn:
                if distance == self.player.record:
                    self.afficherReachedRecord = 40
                    self.music.stop()
                    if musicAfterRecord == False:
                        pygame.mixer.Sound("sounds/record_beaten.wav").play()
                        self.musicAfterRecord.play(-1)
                        musicAfterRecord = True
                
            
            self.Mouvements(screen, width, height, monVaisseau)
            self.Collisions(monVaisseau, animObj, screen)
            self.Blits(width, height, screen, distance, monVaisseau, animReachedRecord)
            self.supprimerObjets(width)
            #incrementation du compteur generale de distance et creation d'ennemis et d'self.obstacles
            if distanceTemp != 4:
                distanceTemp += 1
            else:
                distanceTemp = 0
                distance += 1
              
             
            if distanceLevelTemp != 60:
                distanceLevelTemp += 1
                if distanceLevelTemp == 10:
                    self.creerEnnemi(width, height, level, monVaisseau)
                    self.creerObstacle(width, height, level) 
            else:
                distanceLevelTemp = 0
                level += 1
            
            if (monVaisseau.enVie == False):    
                self.gameOver(monVaisseau.getPos(), screen, distance, height, monVaisseau)
            pygame.display.update()