def mise_a_jour(self): x, y = pygame.mouse.get_pos() self.balle.deplacer(self.raquette) if self.balle.loose: self.vie -= 1 self.balle.loose = False prec = False for brique in self.niveau.brique_liste: if brique.en_vie(): collision = brique.collision_balle(self.balle, prec) if collision[0]: if not (prec): if brique.vie > 0: jouer_son("touche") else: jouer_son("score") if collision[0] and not (collision[1]): self.score += 1 self.raquette.arc_en_ciel = True self.briques_touchees += 1 if self.score % 50 == 0: self.vie += 1 prec = True self.raquette.deplacer(x) self.en_jeu = True
def deplacer(self, raquette): if self.sur_raquette: self.y = raquette.y - 2 * RAYON_BALLE self.x = raquette.x else: self.x += self.vx self.y += self.vy if raquette.collision_balle(self) and self.vy > 0: self.rebond_raquette(raquette) if self.x + RAYON_BALLE > XMAX: self.vx = -self.vx if self.x - RAYON_BALLE < XMIN: self.vx = -self.vx if self.y + RAYON_BALLE > YMAX: self.sur_raquette = True self.loose = True jouer_son("perte_vie") if self.y - RAYON_BALLE < YMIN: self.vy = -self.vy
def afficher_murs(): pygame.draw.rect(screen, COULEURS["BLANC"], (XMIN-RAYON_BALLE, YMIN-RAYON_BALLE, RAYON_BALLE, YMAX-YMIN+RAYON_BALLE), 0) pygame.draw.rect(screen, COULEURS["BLANC"], (XMAX, YMIN-RAYON_BALLE, RAYON_BALLE, YMAX-YMIN+RAYON_BALLE), 0) pygame.draw.rect(screen, COULEURS["BLANC"], (XMIN, YMIN-RAYON_BALLE, XMAX - XMIN + RAYON_BALLE, RAYON_BALLE), 0) jeu = Jeu() while True: jeu.niveau.en_cours = 2 jeu.niveau.creation_niveaux() while jeu.vie > 0 and jeu.briques_touchees < jeu.niveau.nombre_briques: jeu.gestion_evenements() jeu.mise_a_jour() jeu.affichage() pygame.display.flip() clock.tick(FPS) jeu.briques_touchees = 0 jeu.niveau.en_cours += 1 if jeu.vie == 0: jouer_son("game_over") else: jouer_son("niveau_sup") while jeu.vie == 0 or jeu.niveau.en_cours > NOMBRE_NIVEAUX: jeu.raquette.arc_en_ciel = False jeu.gestion_evenements() jeu.game_over() pygame.display.flip() clock.tick(FPS) jeu.vie += 1 jeu.balle.sur_raquette = True