Bonjour,

Je réalise un exercice qui consiste à simuler le mouvement d'une balle qui tombe et rebondit sur le sol avec une petite précision: Il s'agit de mouvements accélérés.

Je ne comprends pas en fait le principe de la vitesse et du déplacement vertical si quelqu'un pourrait m'apporter quelques explications je lui en serait fort reconnaissant.

Voici mon code que j'ai simplifié au possible pour ne mettre en exergue que ces principes de vitesse et de déplacement que je n'ai pas compris:

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
from tkinter import *
 
def move():
    global x, y, flag, v, dv
 
# Pas compris ce bloc d'instruction:
    v = v + dv
    y = y + v
 
# Ca j'ai compris:
    if y > 190: 
        y = 190
        v = -v
 
    can.coords(ball, x-10, y-10, x+10, y+10)
 
    if flag > 0:
        fen.after(50, move)
 
def start():
    global flag
    flag += 1
    if flag == 1:
        move()
def stop():
    global flag
    flag = 0
 
x, y = 20, 20
 
 # Pas compris, de plus quand dv = 10: la balle rebondit de moins
 # en moins haut pour ne plus rebondir du tout:
v, dv = 1, 1
 
flag = 0
 
fen = Tk()
fen.title("Animation avec Tkinter")
can = Canvas(fen, bg= "white", width= 300, height= 200)
can.grid(row= 0, column= 0)
ball = can.create_oval(x-10, y-10, x+10, y+10, outline= "blue", fill= "light blue")
bou1 = Button(fen, text= "Lâcher la Balle", command= start)
bou1.grid(row= 1, column= 0)
bou2 = Button(fen, text= "Arrêter la Balle", command= stop)
bou2.grid(row= 3, column= 0)
bou3 = Button(fen, text= "Quitter", command= fen.quit)
bou3.grid(row= 4, column= 0)
fen.mainloop()
fen.destroy()
Merci par avance de votre aide.