ISN 12
Balle [] maBalle;
int nombreDeBalles = 5; //défini le nombre de balle et peut être changé
int clicRestant=10;
boolean tir=false;
int score=0;
int delay=0;
int date=0;
int oldDate=0;
void setup() {
size(500, 500);
maBalle = new Balle[nombreDeBalles];
for (int x = 0; x < nombreDeBalles; x++) {
maBalle[x] = new Balle(random(25,350),random(25,150), color(random(0,255),random(0,255),random(0,255)));
}
}
void draw() {
background(#E88336);
button();for (int x = 0; x < nombreDeBalles; x++) {
maBalle[x].bouge();
maBalle[x].rebondir();
maBalle[x].affiche();
maBalle[x].tir();
}
viseur();
score();
for (int i=0; i<clicRestant; i++) {
rect(450, 300+20*i, 40, 10);
}
rect(450, 10, 40, 20);
}
void button() {
if (mousePressed) {
if (mouseX>450) {
if (mouseX<490) {
if (mouseY>10) {
if (mouseY<30) {
clicRestant =10;
}
}
}
}
}
}
void score() {
textSize(24);
text("Score= "+ score, 10, 30);
text("Tirs restants= "+ clicRestant, 10, 60);
if(score==nombreDeBalles){textSize(34);text("YOU WIN",170,250);}
}
void viseur() {
noCursor();
noFill();
line(mouseX-20, mouseY, mouseX+20, mouseY);
line(mouseX, mouseY-20, mouseX, mouseY+20);
ellipse(mouseX, mouseY, 17, 17);
fill(#4E5DDE);
}
void mousePressed(){
clicRestant= clicRestant -1;
if (clicRestant<0){clicRestant=0;}
}
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
Balle (float nouvX, float nouvY, color nouvCouleur) {
x = nouvX;
y = nouvY;
couleur = nouvCouleur;
vitesseX = 2 + random(-1, 1);
vitesseY = 2 + random(-1, 1);
}
void affiche() {
fill(couleur);
ellipse(x, y, 25, 25);
}
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;
}
}
void tir() {
if (mousePressed) {
date=millis();
delay=millis()-oldDate;
println(delay);
if (delay>1000) {
tir = true;
oldDate=millis();
}
}
//println(tir);
for (int i=0;i<10;i++) {
if (mousePressed) {
if (tir==true) {
if (clicRestant>0) {
if (mouseX<x+30) {
if (mouseY<y+30) {
if (mouseX>x-30) {
if (mouseY>y-30) {
x=9999;
y=9999;
score = score +1;
tir=false;}
}
}
}
}
}
}
}
}
}