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
| def balle(rond, x, y, diametre) :
"fonction qui dessine la balle à une position"
can.coords(rond, x-diametre/2, y-diametre/2, x+diametre/2, y+diametre/2)
def bouge() :
"fonction qui créé le mouvement de la balle, et mime son rebond contre le bord du canevas"
global x, y, poussee
x=x + poussee["x"]
y=y + poussee["y"]
if x >= width:
poussee["x"]=-poussee["x"]
x=width-diametre
if x <= 0:
poussee["x"]=-poussee["x"]
x=diametre
if y >= height:
poussee["y"]=-poussee["y"]
y=height-diametre
if y <= 0:
poussee["y"]=-poussee["y"]
y=diametre
balle(rond, x, y, diametre)
poussee={"x" : 10, "y" : 10}
x=180
y=190
width=400
height=400
diametre=20
fen = Tk()
fen.title('Balle qui rebondit')
can = Canvas(fen,bg='pale goldenrod',width=width,height=width)
can.pack()
rond=can.create_oval(x, y, x, y, outline='firebrick1', fill='firebrick1')
balle(rond, x, y, diametre)
Button(fen,text='Bouge !',bg='pale goldenrod',fg='firebrick1',command=bouge).pack(side=BOTTOM)
fen.mainloop() |
Partager