Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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