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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
from tkinter import*
from random import randrange
from math import*
#On definie les paramétres
XMAX,YMAX=550,600
X,Y=265,550
DX,DY=-10,-10
xbar,ybar=275,580
RAYON=8
flag = 0
#Mouvement de la balle
def move():
global X,Y,DX,DY,XMAX,YMAX,balle,flag,RAYON
xp, yp = X+DX, Y+DY
#rebond a droite
if xp > YMAX-35 :
DX=-DX
#rebond a gauche
if xp < 0:
DX=-DX
#rebond en haut
if yp <0:
DY=-DY
#rebond sur la raquette
if yp >= ybar-10 and xp < xbar+50 and xp > xbar-50:
DY = -DY
X, Y = X+DX, Y+DY
Can1.coords(balle,X-RAYON,Y-RAYON,X+RAYON,Y+RAYON)
if flag > 0:
fenetre.after(45,move)
def start(event):
global flag
flag=flag+1
if flag==1:
move()
"démarrer"
def stop(event):
"arret de l'animation"
global flag
flag =0
#Pour quitter le programme
def Quitter (event):
fenetre.destroy()
def Clavier(event):
global xbar,ybar
touche=event.keysym
if touche == 'Left':
xbar=xbar-30
if touche == 'Right':
xbar=xbar+30
if touche == 'Escape':
fenetre.destroy
Can1.coords(raquette,xbar-50,ybar-8,xbar+50,ybar+8)
#Définition de la fenetre
fenetre = Tk()
fenetre.title('casse briques')
#Indique les normes du Canevas
Can1 = Canvas(fenetre, width = XMAX, height = YMAX, bg='white')
Can1.pack()
#Définition du boutton "Start"
Button(fenetre, text='Démarrer',command=start).pack(side=LEFT, padx=15,pady=10)
Can1.bind("<Return>",start)
#Définition du boutton "Quitter"
Button(fenetre, text='Quitter',command=fenetre.destroy).pack(side=RIGHT,padx=15,pady=10)
Can1.bind("<Escape>",Quitter)
#Cliquer sur p pour mettre en pause
Can1.bind("<p>",stop)
#Création de la raquette et de la balle
raquette = Can1.create_rectangle(xbar-50,ybar-8,xbar+50,ybar+8,width=2,fill='black')
balle = Can1.create_oval(X-RAYON,Y-RAYON,X+RAYON,Y+RAYON,width=1,fill='red')
#Création des briques
for yb in range(50, 150, 20):
for xb in range(50, 500, 50):
brique=Can1.create_rectangle(xb, yb, xb+50, yb+20, fill='green')
Can1.focus_set()
Can1.bind('<Key>', Clavier)
fenetre.mainloop() |
Partager