Aperçu du sketch exécutable au 10 février
PImage fond;
int x=25;
int y=25;
int TableauX[]=new int[30];
int TableauY[]=new int[30];
int i=0;
float x1=250;
float y1=445;
float depY=0;
float depX=0;
float vit=0;
boolean reverse = false;
color [] rgb= {#F00C0C,#837F86,#F5F5F5};
int [] id_couleurs_balles = new int[30];
int [] couleurs_balles = new int[30];
void setup(){
size(500,500);
fond= loadImage("fond.jpeg");
for (int i=0; i<30;i++) {
id_couleurs_balles[i]= int(random(3));
int idref=id_couleurs_balles[i];
color balls= rgb[idref];
print(balls);
couleurs_balles[i]=balls;
//print(couleurs_balles[i]);
print("-");
}
}
void draw(){
image(fond,0,0,width,height);
Canon();
Balle();
line(250,445,250,0);
Tir();
//line(0,420,500,420);//ligne qu'il ne faut pas dépasser sinon perdu
}
void Canon(){
line (mouseX,mouseY,250,445);
fill(#FAFAFA);
rect(225,470,50,30);}
void Balle(){
for (int i=0; i<30;i++) {
if(i==0) {
x=25;
}
else { x=x+50;
}
if(i==0){
y=25;
}
if(i==10){
y=y+50;
x=25;
}
if(i==20){
y=y+50;
x=25;
}
//print(x);
//print("-");
TableauX[i]=x;
TableauY[i]=y;
ellipse(x,y,50,50);
color ball_color= couleurs_balles[i];
fill(ball_color);
}
}
void Tir() {
ellipse(x1,y1,50,50);
if (mousePressed==true) {
if(mouseX == 250)
{
depX=0;
depY=1;
vit=10;
}
else
{
if(mouseX < 250)
{
depX=-1;
}
else
{
depX=1;
}
depY=abs((mouseY-y1)/(mouseX-x1)*depX);
vit = 10/(abs(depX)+depY);
}
}
if(y1>30)
{
y1 = y1-depY*vit; // déplacement vertical de la balle
if(!reverse) // la balle va dans le sens de tir initial.
{
if(x1<470 && x1>30)
{
x1 = x1+depX*vit; // déplacement horizontal de la balle
}
else // rebond 1,3,5..
{
reverse = true; // la balle change de direction car rebond
x1 = x1-depX*vit; // fait le chemin horizontal inverse puiqu'il y a eu rebond
}
}
else // <=> if(reverse) = si la balle touche encore un bord.
{
if(x1<470 && x1>30)
{
x1 = x1-depX*vit; // chemin inverse à sa direction de tir
}
else // rebond 2,4,6..
{
reverse = false; // balle après rebond
x1 = x1+depX*vit; // déplacement horizontal normal.
}
}
}
}
}