def update(): global root, changerNiveau, VIES if briques.hasBriqueBreakable() or animationsExplosion.nbExplosion() or animationsArtifice.NBANIMATIONS: if balles.nbBalle() or bonus.nbBonus(): collisions.gestionCollisions() balles.move() barres.move() bonus.move() animationsExplosion.explosionsMove() animationsArtifice.animationsArtificeMove() config.SPEED += config.SPEED_PER_FRAME root.after(1000 // (config.FPS), update) elif VIES: VIES -= 1 barres.enleverBarres() barres.ajouterBarre(config.WIDTH / 2 - 100, 500) balles.enleverBalles() config.SPEED = config.BALLE_SPEED_INIT balles.ajouterBalle(config.WIDTH / 2 - 10 + randrange(-5, 5), 350) root.after(1000 // (config.FPS), update) else: print("PERDU") root.quit() else: changerNiveau()
def depart(): global update, SEED # ajout des briques briques.initialiserBriques(SEED) # ajout de la barre barres.ajouterBarre(config.WIDTH / 2 - 100, 500) # ajout de la balle balles.ajouterBalle(config.WIDTH / 2 - 10 + randrange(-5, 5), 350) # mise en route du jeu update()
def changerNiveau(): global SEED, update briques.enleverBriques() SEED += "0" briques.initialiserBriques(SEED) barres.enleverBarres() barres.ajouterBarre(config.WIDTH / 2 - 100, 500) balles.enleverBalles() config.SPEED = config.BALLE_SPEED_INIT balles.ajouterBalle(config.WIDTH / 2 - 10 + randrange(-5, 5), 350) animationsArtifice.enleverAnimationsArtifice() animationsExplosion.enleverExplosions() bonus.enleverTousLesBonus() update()
def gestionCollisonBonusBarre(i, j): """Si il y a collision, on active le bonus""" global collision retour = False bonusx1 = bonus.x[i] + bonus.dx[i] bonusx2 = bonusx1 + bonus.w[i] bonusy1 = bonus.y[i] + bonus.dy[i] bonusy2 = bonusy1 + bonus.h[i] barrex1 = barres.x[j] + barres.dx[j] barrex2 = barrex1 + barres.w[j] barrey1 = barres.y[j] barrey2 = barrey1 + barres.h[j] if collision(bonusx1, bonusx2, bonusy1, bonusy2, barrex1, barrex2, barrey1, barrey2): retour = True # l'effet obtenu depend du bonus if bonus.bonus_contenu[i] in ["barre_agrandie", "barre_retrecie"]: barres.applyBonus(j, bonus.bonus_contenu[i]) bonus.enleverBonus(i) elif bonus.bonus_contenu[i] == "balle_feu": for k in range(balles.nbBalle()): balles.applyBonus(k, "balle_feu") bonus.enleverBonus(i) elif bonus.bonus_contenu[i] == "ajout_balle": xBalle = barres.x[j] + barres.w[j] // 2 - balles.RAYON_BALLE yBalle = barres.y[j] + -balles.RAYON_BALLE dxBalle = 0 dyBalle = -config.SPEED balles.ajouterBalle(xBalle, yBalle, dxBalle, dyBalle) bonus.enleverBonus(i) elif bonus.bonus_contenu[i] == "": bonus.enleverBonus(i) else: raise ValueError("Erreur : bonus contenant un type d bonus inconnu : " + bonus.bonus_contenu[i]) return retour