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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
from Tkinter import *
from random import randrange
from partie1_coord_droite_finie import est_dans_polygone
# procédure générale de déplacement :
def move():
global dep, sx, sy
if est_dans_polygone = False :
command=pause
can1.move(cerc1, sx*dep, sy*dep)
can1.after(100, move)
# gestionnaires d'évènements:
def dep1_gauche(event):
global sx, sy
sx = -1
sy = 0
def dep1_droite(event):
global sx, sy
sx = 1
sy = 0
def dep1_haut(event):
global sy, sx
sy = -1
sx = 0
def dep1_bas(event):
global sy, sx
sy = 1
sx = 0
def start_it():
"démarrage de l'animation"
global flag
flag = not flag
move()
def pause() :
#nous servira quand on touchera le mur
"arret de l'animation"
global flag
flag =0
# Programme principal
# les variables suivantes seront utilisées de manière globale:
dep = 5 # valeur de deplacement
x_cerc, y_cerc = 70, 81 #coordonnées initiales
sx, sy = 1, 0
dim = 10
flag =0 #commutateur
# Création du widget principal ("maître"):
fen1 = Tk()
fen1.title("Super Ball")
# création des widgets "esclaves":
can1 = Canvas (fen1, bg='white', height=500, width=500)
cerc1 = can1.create_oval(x_cerc, y_cerc, x_cerc + dim, y_cerc + dim,fill = 'grey')
can1.pack(side=LEFT)
can1.create_rectangle(50,50,100,100) #dessine un rectangle
can1.create_rectangle(120,280,170,335)
polygone1 = [100,65,420,65], [100,85,400,85]
can1.create_line(tuple(polygone1[0]),fill='red',width=4)#ligne 1
can1.create_line(tuple(polygone1[1]),fill='red',width=4)#ligne 2
can1.create_line(400,84,400,300,fill='red',width=4)#ligne 3
can1.create_line(420,65,420,320,fill='red',width=4)#ligne 4
can1.create_line(170,320,420,320,fill='red',width=4)#ligne 5
can1.create_line(170,300,400,300,fill='red',width=4)#ligne 5
Button(fen1, text='Démarrer', command=start_it).pack(side=BOTTOM)
Button(fen1, text='Quitter', command=fen1.destroy).pack(side=BOTTOM)
Button(fen1, text='Gauche',command=dep1_gauche).pack()
Button(fen1, text='Droite', command=dep1_droite).pack()
Button(fen1, text='Haut', command=dep1_haut).pack()
Button(fen1, text='Bas', command=dep1_bas).pack()
Button(fen1, text='Accélère!', command=start_it).pack(side=BOTTOM)
can1.bind("<z>", dep1_haut)
can1.bind("<s>", dep1_bas)
can1.bind("<d>", dep1_droite)
can1.bind("<q>", dep1_gauche)
# démarrage du réceptionnaire d'évènements (boucle principale):
fen1.mainloop() |
Partager