#Déplacement d'un objet avec le clavier
#1101-deplacement-fleche.py
from tkinter import *
def creer_fenetre(fenetre,titre,taille):
"modifie une fenêtre"
fenetre.title(titre)
fenetre.geometry(taille)
return fenetre
def nettoie_fenetre(fenetre,can,liste_widgets):
can.delete(ALL)
for w in liste_widgets:w.destroy()
return fenetre,can
def avancer(b1,b2,objet):
#procédure d'avancement
global x1,y1,x2,y2
futurx,futury=x2+b1,y2+b2
if futurx>480 or futurx<10:
b1=-b1
futurx=b1+x2
if futury>400 or futury<10:
b2=-b2
futury=b2+y2
x2,y2=futurx,futury
can.coords(objet,x2,y2,x2+30,y2+30)
def touche(event,distance,objet):
#code reçoit le n° de la touche""
code=event.keycode
if code==38: # Up
avancer(0,-distance,objet)
elif code==40: # Down
avancer(0,distance,objet)
elif code==37: #Left
avancer(-distance,0,objet)
elif code==39: #Right
avancer(distance,0,objet)
#------ Programme principal -------
x1, y1 = 40, 40
x2,y2=x1,y1
distance=10
fenetre = Tk()
titre="Déplacement avec les flèches"
taille="500x550"
fenetre=creer_fenetre(fenetre,titre,taille)
regle="Appuyer sur les flèches\n du clavier\n pour faire bouger la balle\n "
regle2=chr(11013)+' '+chr(10145)+' '+chr(11015)+' '+chr(11014)
regle=regle+regle2
texte0=Label(fenetre, text=regle,font="arial 16 bold",fg="blue",bg='white')
can = Canvas(fenetre,bg='light blue',height=480,width=500)
objet = can.create_oval(x1,y1,x1+30,y1+30,width=2,fill='red')
can.grid(row=2,column=0,columnspan=2)
texte0.grid(row=0,column=0,sticky=E)
fenetre.bind_all('<Key>',lambda event:touche(event,distance,objet))
fenetre.mainloop()
|
Déplacement d’une balle avec les flèches du clavier.
|