A la ferme du code heureux, des codes, des programmes, broutent en champ libre.
Une classe, des balles

Your browser does not support the canvas tag.




ArrayList mesBalles; // on déclare l'ArrayList qui contiendra les objets balles

void setup()
{
size(780, 240); // dimention de la fenetre
mesBalles = new ArrayList(); // initialisation de l'ArrayList
}

void draw()
{
background(211); // on efface le fond du sketch
int nombreDeBalles = mesBalles.size(); // on questionne l'ArrayList pour savoir combien de balles il contient

for (int i = 0; i < nombreDeBalles; i=i+1) { // on utilise une boucle pour acceder successivement a toutes les balles du ArrayList
Balle uneBalle = (Balle)mesBalles.get(i); // on recupere l'objet balle à l'index i
uneBalle.bouge(); // on demande à cette balle de bouger, on appel sa méthode bouge()
uneBalle.dessine(); // on demande à cette balle de se dessiner, on appel sa méthode dessine()
}
}

void mousePressed()
{
Balle uneNouvelleBalle = new Balle(mouseX, mouseY, random(10,40));
mesBalles.add(uneNouvelleBalle);
}
// définition de la classe Balle
class Balle {
// la balle se definie par une position, une taille et une couleur
float x = 0;
float y = 0;
float taille;
color maCouleur;

// la méthode constructeur appelée à la création de chaque nouvelle balle
Balle(float _x, float _y,float _taille) {
// une nouvelle balle à besoin d'une position x, y et d'une taille
x = _x;
y = _y;
taille = _taille;
maCouleur = color(random(200)); // chaque balle a sa propre couleur choisie aléatoirement à sa naissance
}

// méthode de la classe pour faire bouger la balle
void bouge()
{
x = x +random(-1,1);
y = y +random(-1,1);
}

// méthode de la classe pour dessiner la balle
void dessine(){
fill(maCouleur);
noStroke();
ellipse(x, y, taille,taille);
}
}