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
|
#import tkinter, qui permet de gérer les fenêtres
from tkinter import *
#import math permet d'avoir accès aux fonctions cosinus et sinus
from math import *
import random
def mouvement():
for j in range(10):
bougez(les_balles[j])
window.after(50,mouvement)
def clavier(event):
window.destroy()
class Balle:
def __init__(self,zone):
self.x=random.randrange(10,largeur-10)
self.y=random.randrange(10,hauteur-10)
self.dx=random.randrange(1,10)
self.dy=random.randrange(1,10)
self.r=random.randrange(5,15)
print("x=",self.x,"y=",self.y,"dx=",self.dx,"dy=",self.dy,"r=",self.r)
zone.create_oval(self.x-self.r, self.y-self.r, self.x+self.r, self.y+self.r, outline='green', fill='green')
def bouger(self,zone):
zone.create_oval(self.x-self.r, self.y-self.r, self.x+self.r, self.y+self.r, outline='yellow', fill='yellow')
if (((self.x+self.dx)>=(largeur-self.r)) or ((self.x+self.dx)<=self.r)):
self.dx=-self.dx
if (((self.y+self.dy)>=(hauteur-self.r)) or ((self.y+self.dy)<=self.r)):
self.dy=-self.dy
self.x=self.x+self.dx
self.y=self.y+self.dy
zone.create_oval(self.x-self.r, self.y-self.r, self.x+self.r, self.y+self.r, outline='green', fill='green')
def bougez(laballe):
laballe.bouger(zone_dessin)
# On crée une fenêtre, racine (départ) de notre interface
window = Tk()
#taille de la fenetre
largeur=640
hauteur=480
#creation d'un canvas pour dessiner
zone_dessin = Canvas(window, width=largeur, height=hauteur, background='yellow')
#ma_balle1 = zone_dessin.create_oval(300, 220, 340, 260, outline='blue', fill='blue')
#capture la pression sur une touche pour fermer la fenetre
window.bind_all('<KeyPress>',clavier)
#on met le canvas dans l'interface
zone_dessin.pack()
#Ma liste mes_balles de balle
#d'abord rien
les_balles=[]
#on ajoute 10 balles
for i in range(10):
les_balles.append(Balle(zone_dessin))
#on lance l'animation
mouvement()
# On démarre la boucle Tkinter qui s'interompt quand on ferme la fenêtre
# cette boucle permet d'attendre que l'utilisateur agisse dans la fenêtre
window.mainloop() |
Partager