Bonsoir à tous, j'ai actuellement un petit souci avec l'utilisation de la fonction time.sleep()
Je programme un jeu de billard (ce n'est pas mon programme complet, juste un extrait modifié pour mettre en évidence mon probleme) et ce programme "devrait" faire bouger la boule sur le Canvas. Le seul souci se situe dans la boucleEn effet Python semble attendre avant et non à chaque incrémentation dans la boucle, alors que j'ai placé cette fonction time.sleep() pour que la trajectoire de la balle soit visible, et non qu'elle se "téléporte"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 def tirer(): p = 10 a = 45 for i in range(0,p): global blanche,x0,y0 canevas.delete(blanche) time.sleep(0.1) x0 = x0 + 20 y0 = y0 + 20 blanche = canevas.create_oval(x0-12,y0-12,x0+12,y0+12, fill='white')
Le plus simple est de copier-coller le code ci-dessous si vous ne comprenez pas ce que je veux dire
Merci d'avance pour toute réponse concernant la fonction time.sleep() ou pour une alternative
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 from tkinter import * import time fen = Tk() fen.geometry("%dx%d%+d%+d" % (1260,940,1,1)) fen['bg']="#92afac" fen.title("Jeu du Billard") canevas = Canvas(fen, width =990, height =522, bg ='#92afac', borderwidth=0) canevas.grid(row=2, column=0, columnspan=4, pady=90, padx=130, sticky='sw') x0=12 y0=12 blanche = canevas.create_oval(x0-12,y0-12,x0+12,y0+12, fill='white') def tirer(): p = 10 a = 45 for i in range(0,p): global blanche,x0,y0 canevas.delete(blanche) time.sleep(0.1) x0 = x0 + 20 y0 = y0 + 20 blanche = canevas.create_oval(x0-12,y0-12,x0+12,y0+12, fill='white') faire_tir = Button(fen, text=" Tirer la blanche ! ", command=tirer) faire_tir.grid() fen.mainloop()
Partager