PROGRAMMATION ORIENTÉE OBJET
La programmation orientée objet permet de gérer plus facilement un grand nombre de balle que la programmation procédurale.
L'objet est défini grâce à une classe, ici la classe balle. La classe comporte une déclaration de variable, un constructeur et des méthodes. Le constructeur permet d'affecter des valeurs aux variables de la classe.
L'instruction « Balle maBalle » permet de créer une instance de la classe balle, elle est placée avec les déclarations de variables globales pour être utilisable dans tout le sketch.
Dans le setup on initialise la balle dans l'instruction :
« maBalle = new Balle(width/2, height/2, color(...)) »
Dans le draw on appelle les méthodes appliquées à l'objet balle :
« maBalle.bouge() ;
maBalle.rebondir() ;
maBalle.affiche(). »
Exemple :
//Déclaration d'une instance de Balle
Balle maBalle;
void setup() {
smooth(); //Lissage des dessins
size(400, 200); //Taille de la fenêtre
noStroke();
// on initialise une Balle nommée maBalle
maBalle = new Balle(width/2, height/2, color(255));
}
void draw() {
fill(0, 10);
rect(0, 0, width, height);
// appel des méthodes
maBalle.bouge();
maBalle.rebondir();
maBalle.affiche();
}
class Balle {
//Déclaration des paramètres de base de la balle
float x; //position
float y;
float vitesseX; // vitesse
float vitesseY;
color couleur; // couleur
//Constructeur de la balle, appelé quand on fait new Balle(...)
Balle (float nouvX, float nouvY, color nouvCouleur) {
x = nouvX;
y = nouvY;
couleur = nouvCouleur;
vitesseX = 2 + random(-1, 1);
vitesseY = 2 + random(-1, 1);
}
//Dessin de la balle
void affiche() {
fill(couleur);
ellipse(x, y, 40, 40);
}
void bouge() {
x = x + vitesseX;
y = y + vitesseY;
}
void rebondir() {
//Si la balle touche une mur, elle rebondit
if (x > width-20 '' x < 20) {
vitesseX = vitesseX * -1;
}
if (y > height-20 '' y < 20) {
vitesseY = vitesseY * -1;
}
}
}
Il faut cependant appliquer des modifications à ce sketch pour faire apparaître nos 10 balles :
- Balle [] maBalle;
- new
- for (int x = 0; x < 10; x++) {
- maBalle[x] = new Balle(random(25,350),random(25,150), color(random(127,255),random(127,255),random(127,255)));