Bonjour (ou re...),

Je découvre donc la fonction sympa .after

Mais ça fait 3 heures que je tente de comprendre où est mon erreur dans ce tout petit script :

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
35
36
37
38
39
40
41
42
43
def move() :
    "déplacement de la balle"
    global x1,y1,dx,dy,flag
    x1,y1 = x1 + dx,y1 + dy
    if 125 <= x1 <= 220 and 0 <= y1 <= 95 :
        dx,dy = 5,5
    if 95 <= x1 <= 220 and 95 <= y1 <= 220 :
        dx, dy = -5,5
    if 0 <= x1 <= 95 and 125 <= y1 <= 220 :
        dx,dy = -5,-5
    if 0 <= x1 <= 125 and 0 <= y1 <= 125 :
        dx,dy = 5,-5
    can1.coords(oval1,x1,y1,x1+30,y1+30)
    if flag > 0 :
        fen1.after(50,move)

def stop_it():
    global flag
    flag = 0

def start_it() :
    global flag
    if flag == 0 :
        flag = 1
        move()

x1,y1 = 125,0
dx,dy = 5,5
flag = 0

fen1 = Tk()
fen1.title("Exercice d'animation avec tkinter")

can1 = Canvas(fen1,bg='dark grey',height=250,width=250)
can1.pack(side=LEFT,padx=5,pady=5)
oval1 = can1.create_oval(x1,y1,x1+30,y1+30,width=2,fill='pink')
Button(fen1,text='Quitter',width=8,command=fen1.quit).pack(side=BOTTOM)
Button(fen1,text='Démarrer',width=8,command=start_it).pack()
Button(fen1,text='Arrêter',width=8,command=stop_it).pack()

fen1.mainloop()

fen1.destroy()
J'ai mis des "print" partout, il semble que ce soit entre la fin de la boucle et....elle ne repart pas, puisque mon y1 continue de descendre en-dessous de 0.
Il est pourtant clairement borné non ?

Peut-être que des yeux neufs verront...ce que je ne suis pas capable de voir.

D'avance merci