Problème time.sleep [Résolu/Fermé]

Signaler
Messages postés
26
Date d'inscription
lundi 22 août 2016
Statut
Membre
Dernière intervention
20 mai 2020
-
Messages postés
26
Date d'inscription
lundi 22 août 2016
Statut
Membre
Dernière intervention
20 mai 2020
-
Bonjour, j'ai commencer un jeu en python ou nous sommes la première personne d'une histoire a un moment il y a un combat :
def combat_début():
    global pts_moi
    global pts_mrx
    global text_pts_moi
    global text_pts_mrx
    text.config(text="c parti pour le combat")
    bouton_combat.destroy()
    pts_moi = 50
    pts_mrx = 50
    text_pts_moi = Label(frame_haut, text=pts_moi,font=("Courrier",20),bg="#2828A1",fg="white")
    text_pts_mrx = Label(frame_haut, text=pts_mrx,font=("Courrier",20),bg="#2828A1",fg="white")
    text_pts_moi.grid(column=2,row=0,sticky="e")
    text_pts_mrx.grid(column=0,row=0,sticky="w")
    combat()

def combat():
    text.config(text="attaquez!")
    global attaque1
    global attaque2
    global attaque3
    global attaque4
    attaque1 = Button(frame_bas,text="attaque1\n 1~7pts", font=("Courrier",20), bg="#2828A1",fg="white", command=attaque1)
    attaque2 = Button(frame_bas,text="attaque2\n 3~5pts", font=("Courrier",20), bg="#2828A1",fg="white", command=attaque2)
    attaque3 = Button(frame_bas,text="attaque3\n 4pts", font=("Courrier",20), bg="#2828A1",fg="white", command=attaque3)
    attaque4 = Button(frame_bas,text="attaque4\n  0~9pts", font=("Courrier",20), bg="#2828A1",fg="white", command=attaque4)
    attaque1.grid(row=0,column=0)
    attaque2.grid(row=0,column=1)
    attaque3.grid(row=1,column=0)
    attaque4.grid(row=1,column=1)

def attaque1():
    global pts_mrx
    attaque1.destroy()
    attaque2.destroy()
    attaque3.destroy()
    attaque4.destroy()
    pts_mrx-=random.randint(1,10)
    text_pts_mrx.config(text=pts_mrx)
    check_pts_mrx()

def attaque2():
    global pts_mrx
    attaque1.destroy()
    attaque2.destroy()
    attaque3.destroy()
    attaque4.destroy()
    pts_mrx-=random.randint(1,10)
    text_pts_mrx.config(text=pts_mrx)
    check_pts_mrx()

def attaque3():
    global pts_mrx
    attaque1.destroy()
    attaque2.destroy()
    attaque3.destroy()
    attaque4.destroy()
    pts_mrx-=random.randint(1,10)
    text_pts_mrx.config(text=pts_mrx)
    check_pts_mrx()

def attaque4():
    global pts_mrx
    attaque1.destroy()
    attaque2.destroy()
    attaque3.destroy()
    attaque4.destroy()
    pts_mrx-=random.randint(1,10)
    text_pts_mrx.config(text=pts_mrx)
    check_pts_mrx()


def check_pts_mrx():
    if pts_mrx>0:
        attaque_mrx()
    else:
        text.config(text="mrx est mort!")
        win()

def attaque_mrx():
    global pts_moi
    text.config(text="mrx attaque!")
    time.sleep(4)
    pts_moi-=random.randint(1,7)
    text_pts_moi.config(text=pts_moi)
    check_pts_moi()
def check_pts_moi():
    if pts_moi>0:
        combat()
    else:
        lose()

def lose():
    text.config(text="bravo")

def win():
    text.config(text="perdu")

ce code n'est que la parti du combat je le précise
quand je suis dans la fenêtre tkinter je clique sur le bouton attaque 1 il reste figé et le text "Mrx attaque !" ne s'affiche pas je pense que c'est a cause du time.sleep(4) mais je n'est pas trouvé autre chose avez vous une idée?

1 réponse

Messages postés
397
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
26 août 2020
184
Bonjour,
c'est normal que la fenêtre se fige pendant le sleep mais elle devrait revenir à la normal au bout de 4 secondes. Est-ce que c'est bien le cas ?
Si vous voulez que le texte soit modifié avant d'attendre les 4 secondes, vous pouvez faire
text.config(text="mrx attaque!")
text.update()
time.sleep(4)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60906 internautes nous ont dit merci ce mois-ci

Messages postés
26
Date d'inscription
lundi 22 août 2016
Statut
Membre
Dernière intervention
20 mai 2020

Super merci beaucoup c exactement ce que je voulais