Quelques explications :
boules
contient toutes les boules lumineuses du sapinx,y
, une taille t
, une couleur c
et un angle a
x,y
suit une ellipse, l’angle augmentant de façon aléatoire (dit autrement, les boules ne tournent pas à la même vitesse) et lorsqu’un tour complet est effectué (2*pi
), la couleur change (en suivant les valeurs qu’il y a dans la variable couleurs
)from math import cos,sin,pi from kandinsky import fill_rect from time import monotonic from random import randint, random BL = (255,) *3 NR = (0,) *3 couleurs = [(22,90,50),(250,250,40),(22,90,50),(230,70,50),(22,90,50),(100,250,10),NR,NR,NR] class boule: def __init__(self, h, r , a): self.h = 40 + h self.r = r self.a = a self.t = 0 self.c = 0 def suivant(self): if random() < .8: x = int(160 + self.r * cos(self.a)) y = int(self.h + 10 * sin(self.a)) fill_rect(x, y, self.t + 1, 1 + self.t, NR) self.t = (1 + self.t) % 4 self.a += pi / randint(5,100) if self.a > 2 * pi: self.a = 0 self.c = (1 + self.c) % 9 fill_rect(x, y, self.t, self.t,couleurs[self.c]) fill_rect(0,0,320,222,NR) boules = [] for h in range(0,140,5): boules.append(boule(h, h / 2.5,0)) nbBoules = len(boules) t = monotonic() while True: if monotonic() - t > .01: t = monotonic() for k in range(nbBoules): boules[k].suivant()