Ejemplo n.º 1
0
    def update_screen(self):
        #Appèle de la super class
        Scene.update_screen(self)

        pygame.time.delay(8)

        now_time = pygame.time.get_ticks()
        if now_time - self.last_time_show_balle >= self.show_ball_time:
            self.last_time_show_balle = now_time
            self.sprites.append(Ball(pygame.Rect(random.randint(SIZE_BALL, RECT_WINDOW.width - SIZE_BALL), 0, SIZE_BALL, SIZE_BALL), self.window))

        if now_time - self.last_time_advance_difficult >= 10000:
            self.last_time_advance_difficult = now_time
            if self.difficulties <= 10:
                self.show_ball_time -= 65
                self.difficulties += 1




        #Fais descendre les bales
        for sprite in self.sprites:
            if isinstance(sprite, Ball):

                #Collision avec la bar
                if self.bar.rect.colliderect(sprite.rect):
                    sprite.move_up = True
                    self.scores += 1
                if sprite.move_up:
                    sprite.rect.y -= self.difficulties + 2
                else:
                    sprite.rect.y += self.difficulties
                #Quand la barre sort de la fenêtre
                if sprite.rect.colliderect(RECT_WINDOW) != True:
                    #La ball sort du haut de l'écran
                    if sprite.rect.y <= 0:
                        self.sprites.remove(sprite)
                    else:
                        #On perd
                        if self.call_back_game_over is not None:
                            self.call_back_game_over()

                        self.sprites.remove(sprite)
                        pass
        #Affiche le score
        self.window.blit(self.font_scores.render("{}".format(self.scores), 1, LABEL_SCORE_COLOR), (20, 20))
Ejemplo n.º 2
0
 def update_screen(self):
     Scene.update_screen(self)
Ejemplo n.º 3
0
 def update_screen(self):
     Scene.update_screen(self)
Ejemplo n.º 4
0
    def update_screen(self):
        pygame.draw.rect(self.window, BACKGROUND_COLOR, pygame.Rect(0, 0, RECT_WINDOW.width, RECT_WINDOW.height))
        #Appèle de la super class
        Scene.update_screen(self)


        pygame.time.delay(8)

        now_time = pygame.time.get_ticks()
        #Ajoute la ball
        if now_time - self.last_time_show_balle >= self.show_ball_time:
            self.last_time_show_balle = now_time

            #Si la ball doit être envoyé dans haut puis descendre
            if self.show_ball_up:
                self.sprites.append(TopBall(pygame.Rect(random.randint(10, RECT_WINDOW.width - SIZE_BALL), 0, SIZE_BALL, SIZE_BALL), self.window))
            else:
                self.sprites.append(BottomBall(pygame.Rect(random.randint(10, RECT_WINDOW.width - SIZE_BALL), RECT_WINDOW.height - 10, SIZE_BALL, SIZE_BALL), self.window))
            self.show_ball_up = not self.show_ball_up


        #Augmente la difficultée
        if now_time - self.last_time_advance_difficult >= 10000:
            self.last_time_advance_difficult = now_time
            if self.difficulties <= 10:
                self.show_ball_time -= 65
                self.difficulties += 1




        #Fais descendre les bales
        for sprite in self.sprites:
            if isinstance(sprite, Ball):

                #Collision avec la bar
                if self.bar.rect.colliderect(sprite.rect):
                    sprite.move_up = not sprite.move_up
                    self.scores += 1


                #Si la class est une instance d'une ball qui part vers le haut
                if isinstance(sprite, TopBall):
                    #Détermine quand on perd pour la ball qui démarre en haut
                    if sprite.rect.y + sprite.rect.width >= RECT_WINDOW.height / 2:
                        self.sprites.remove(sprite)
                        self.scores = 0
                        self.difficulties = 1
                        self.show_ball_time = 1000

                        #-------------------
                        #      Game Over
                        #-------------------
                    else:
                        if sprite.move_up:
                            sprite.rect.y -= self.difficulties + 3
                        else:
                            sprite.rect.y += self.difficulties

                elif isinstance(sprite, BottomBall):
                    #Détermine quand on perd pour la ball qui démarre en bas
                    if sprite.rect.y <= RECT_WINDOW.height / 2:
                        self.sprites.remove(sprite)
                        self.scores = 0
                        self.difficulties = 1
                        self.show_ball_time = 1000

                        #-------------------
                        #      Game Over
                        #-------------------

                    else:
                        if sprite.move_up:
                            sprite.rect.y -= self.difficulties
                        else:
                            sprite.rect.y += self.difficulties + 3

                #Quand la barre sort de la fenêtre
                if not sprite.rect.colliderect(RECT_WINDOW):
                    #La ball sort de l'écran
                    self.sprites.remove(sprite)

        #Affiche le score
        self.window.blit(self.font_scores.render("{}".format(self.scores), 1, LABEL_SCORE_COLOR), (20, 20))