Saisir le code suivant :
tabBalles = []
nbBalles = 60
def setup():
size(400,400)
for i in range(nbBalles):
balle = []
# indice 0 : abscisse du centre de la balle
balle.append(random(20,380))
# indice 1 : ordonnée du centre de la balle
balle.append(random(20,380))
# indice 2 : abscisse du vecteur vitesse de la balle
balle.append(random(-3,3))
# indice 3 : ordonnée du vecteur vitesse de la balle
balle.append(random(-3,3))
tabBalles.append(balle)
def draw():
background(240);
for b in tabBalles:
deplace_balle(b)
affiche_balle(b)
def deplace_balle(balle):
if balle[0] < 20 or balle[0] >380:
balle[2]=-balle[2]
if balle[1] < 20 or balle[1] >380:
balle[3]=-balle[3]
balle[0] += balle[2]
balle[1] += balle[3]
def affiche_balle(balle):
ellipse(balle[0],balle[1],40,40)
Vous devriez obtenir l'animation suivante :
Les informations de chaque balle (position : x et y, vitesse déplacement : composante x et y) sont stockées dans un tableau nommé balle
de taille 4.
L'ensemble des balles est stocké dans un tableau nommé tabBalles
.
Le tableau tabBalles
est donc une matrice de dimensions nbBalles
x 4.
La détection sur un des 4 bords se fait avec des conditions portant sur l'abscisse (pour les bords gauche et droit) et sur l'ordonnée des bords (haut et bas) du centre de la balle.
En cas de détection d'un bord, on modifie le vecteur vitesse :
Modifier ce programme afin que le rayon, la couleur et la transparence des balles soient aléatoires afin d'obtenir ce type d'animation.
Le rayon doit être compris entre 2 et 20 pixels.