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
|
from tkinter import *
class voiture:
""" classe fabriquant des objets voiture """
def __init__(self, couleur, canvas, x1, y1, taille):
self.couleur = couleur
self.can = canvas
self.x1 = x1
self.y1 = y1
self.taille = taille
self.w = self.can.create_rectangle(self.x1, self.y1, self.x1+self.taille, self.y1+self.taille, fill=self.couleur)
def bouge(self, dx, dy, vitesse ):
self.dx = dx
self.dy = dy
self.vitesse = vitesse
self.can.move(self.w, self.dx, self.dy)
self.can.after(self.vitesse, lambda: self.bouge(dx, dy, vitesse) )
# creation fenetre
fen = Tk()
# creation canvas
canW = 500
canH = 500
canBg = "ivory"
can = Canvas(fen, height=canH, width=canW, bg=canBg)
can.pack()
# instanciation de deux objets voiture
voit1 = voiture("red", can, 10, 20, 50)
voit2 = voiture("blue", can, 50, 60, 25)
# application de la methode bouge() aux "voitures"
voit1.bouge(10, 10, 500)
voit2.bouge(25, 25, 1000)
# gestionaire d'evenement bouclé
fen.mainloop() |
Partager