Problème time.sleep
Résolu
clement5188
Messages postés
28
Statut
Membre
-
clement5188 Messages postés 28 Statut Membre -
clement5188 Messages postés 28 Statut Membre -
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 :
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?
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
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
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)
clement5188
Messages postés
28
Statut
Membre
Super merci beaucoup c exactement ce que je voulais