Problème time.sleep
Résolu
clement5188
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
clement5188 Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
clement5188 Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
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
25
Date d'inscription
Statut
Membre
Dernière intervention
Super merci beaucoup c exactement ce que je voulais