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))
def update_screen(self): Scene.update_screen(self)
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))