Bonjour,

Ma boule se déplace de plus en plus vite à chaque changement de direction.
La position (en x ou y) varie pourtant toujours de 10 en 10
J'ai aussi essayé avec .move. Cela ne résoud pas le problème.
J'ai regardé quelques scripts sur google mais n'ai rien vu d'intéressant et cela fait un bout de temps que je cherche.
Le message ne garde pas l'indentation, dsl

Des idées ?
A coté, des suggestions pour améliorer le code ?

Merci




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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from tkinter import * 
 
class Application(Tk):
    def __init__(self):
        # Graphique 
        Tk.__init__(self)
        self.cadre = Canvas( self,bg='light yellow',height=500,width=500)  
        self.cadre.focus_set()
        self.cadre.bind("<Up>", self.go_up)
        self.cadre.bind("<Down>", self.go_down) 
        self.cadre.bind("<Left>", self.go_left)
        self.cadre.bind("<Right>", self.go_right)           
 
        # Init
        self.dy = 10
        self.dx = 10
        self.x = 250
        self.y = 250 
        self.r = 20
        self.oval1 = self.cadre.create_oval(self.x, self.y, self.x+self.r, self.y+self.r, fill='red')
        self.cadre.grid(row = 1) 
 
    def move(self):  
        if self.up == 1:
            self.y -= self.dy
        elif self.down == 1:
            self.y += self.dy 
        elif self.left == 1:
            self.x -= self.dx         
        elif self.right == 1:
            self.x += self.dx
        print(self.x)    
        self.cadre.coords(self.oval1, self.x, self.y, self.x+self.r, self.y+self.r) 
        self.after(100, self.move)    
 
    def go_up(self, event):
        print("up")  
        self.up = 1
        self.down = 0
        self.left = 0
        self.right = 0
        self.move()
 
    def go_down(self, event):
        print("down")
        self.up = 0
        self.down = 1
        self.left = 0
        self.right = 0
        self.move()        
 
    def go_left(self, event):
        print("left")
        self.up = 0
        self.down = 0
        self.left = 1
        self.right = 0
        self.move()
 
    def go_right(self, event):
        print("right")
        self.up = 0
        self.down = 0
        self.left = 0
        self.right = 1
        self.move()
 
#------ Programme principal --------------------------------------------------- 
 
launch = Application()
launch.mainloop()