Bonjour à tous,

même si je lis pas mal de sujet sur ce forum, je n'arrive pas à résoudre mon problème. Je débute en Python et mon script est sans doute mal écrit.

Objectif : Faire rebondir une balle d'une hauteur de 200 px, px par px, avec un affichage toutes les 0,5 secondes (ce qui doit prendre 20 s)
Remarque : J'ai ajouté une balle jaune pour visualiser la position initiale de la balle rouge et pour le moment la balle rouge se contente de monter pour que je puisse constater que ma fonction fonctionne.

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
"Importation des bibliothèques"
from tkinter import *
 
"Définition des fonctions"
def deplacement(dy , nb): # Déplace balle1 "nb" fois de "dy" selon y
    global nb_aff
    while (nb_aff <= nb):
        nb_aff += 1
        Can.move(balle1,0,dy)
        Fen.after(500,deplacement(dy,nb))
 
def rebond():
    nb_aff = 0
    deplacement(-1,200) # Déplace la balle1 de 200 px vers le haut de 1 px en 1 px
    #deplacement(1,200) # Déplace la balle1 de 200 px vers le bas de 1 px en 1 px
 
Fen = Tk()
Fen.title('Faire rebondir une balle')
 
Can = Canvas(Fen , width = 400 , height = 300 , background = 'white')
Can.pack()
balle2 = Can.create_oval(40 , 280 , 60 , 300 , fill='yellow') # Balle fixe jaune
balle1 = Can.create_oval(40 , 280 , 60 , 300 , fill='red') # Balle qui doit rebondir
nb_aff = 0
rebond()
 
Fen.mainloop()
Problème : La fenêtre nommée Fen ne s'affiche que lorsque la balle rouge a effectué son saut, enfin, que la première partie, c'est à dire après 10 s, or j'aimerais visualiser le déplacement de la bille rouge ...

Je suis preneur de toute proposition même si le code est totalement revu.

Par avance, merci.