Voici la version "programmation orientée objet" du programme qui était demandé dans le "À faire vous-même 5.4"
Saisissez, testez et analysez ce code (si nécessaire, retravaillez les activités consacrées à la programmation orientée objet en python : ici).
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import *
import time
import random
fen = Tk()
canvas=Canvas(fen,width=500,height=500,background='white')
canvas.pack()
class Balle:
def __init__(self,posX_ini,posY_ini,vitX_ini,vitY_ini,ray):
self.objet=canvas.create_oval(posX_ini-ray,posY_ini-ray,posX_ini+ray,posY_ini+ray,fill="red")
self.posX=posX_ini
self.posY=posY_ini
self.vitX=vitX_ini
self.vitY=vitY_ini
def deplacement(self):
if (self.posX<5 or self.posX>495):
self.vitX=-self.vitX
if (self.posY<5 or self.posY>495):
self.vitY=-self.vitY
canvas.move(self.objet,self.vitX,self.vitY)
self.posX=self.posX+self.vitX
self.posY=self.posY+self.vitY
balle = Balle(250,250,random.randint(-3,3),random.randint(-3,3),5)
while True:
balle.deplacement()
fen.update_idletasks()
fen.update()
time.sleep(0.01)
fen.mainloop()
Vous devriez obtenir ceci :
En repartant de ce qui a été fait dans le "À faire vous-même 6.2", créez un programme permettant d'animer 50 balles (la position, la direction et la vitesse de départ devront être aléatoires).