int d=100;
int h=100;//диаметр кругов
float x1,y1,vx1,vy1; //переменные для одного круга
float x2,y2,vx2,vy2;
float x3,y3,vx3,vy3;
float rx,ry;
void setup(){
textSize(20); //размер текста
size(1000,1000); //размер холста
background(100);//черный фон
noStroke();//режим без контура
// начальные переменные для 1 шара
x1=random(d,600); y1=random(d,height-d);
vx1=random(-9,9); vy1=random(-9,9);
x2=random(d,600); y2=random(d,height-d);
vx2=random(-9,9); vy2=random(-9,9);
x3=random(d,600); y3=random(d,height-d);
vx3=random(-9,9); vy3=random(-9,9);
rx = 500; ry = 500;
}
void draw(){
fill(216,222,216,20);
rect(800,0,1000,1000);
fill(116,116,116);
rect(850,200,100,50);
fill(116,116,116);
rect(850,400,100,50);
fill(116,116,116);
rect(850,600,100,50);
fill(116,116,116);
rect(850,800,100,50);
//рисование шаров
fill(216,22,0,20);
circle(x1,y1,d);
fill(0,20,250,20);
circle(x2,y2,d);
fill(255,255,255,10);
circle(x3,y3,d);
// движение шаров, изменение координат
x1=x1+vx1; //x1+=vx1
y1=y1+vy1;
x2=x2+vx2; //x1+=vx1
y2=y2+vy2;
x3=x3+vx3; //x1+=vx1
y3=y3+vy3;//y1+=vy1
//проверка ударения о стены 1 шара
if (x1<d/2) vx1*=-1;
if (x1>800-d/2) vx1*=-1;
if (y1<d/2) vy1*=-1;
if (y1>height-d/2) vy1*=-1;
if (x2<d/2) vx2*=-1;
if (x2>800-d/2) vx2*=-1;
if (y2<d/2) vy2*=-1;
if (y2>height-d/2) vy2*=-1;
if (x3<d/2) vx3*=-1;
if (x3>800-d/2) vx3*=-1;
if (y3<d/2) vy3*=-1;
if (y3>height-d/2) vy3*=-1;
if (d*d >= (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)){
vy2 *=-1;
vx2 *=-1;
vy1 *=-1;
vx1 *=-1;
}
//стирание по нажатию мыши
if (mousePressed&(d*d >= (mouseX-x3)*(mouseX-x3)+(mouseY-y3)*(mouseY-y3))){
background(100);
}
fill(random(0,255));
rect(rx,ry,h,h);
if (mousePressed&mouseX >= 850& mouseX <=950& mouseY >= 200& mouseY <= 250& rx < 700){
rx += 10;
}
if (mousePressed&mouseX >= 850& mouseX <=950& mouseY >= 400& mouseY <= 450& rx > 0){
rx -= 10;
}
if (mousePressed&mouseX >= 850& mouseX <=950& mouseY >= 600& mouseY <= 650& ry < 900){
ry += 10;
}
if (mousePressed&mouseX >= 850& mouseX <=950& mouseY >= 800& mouseY <= 850& ry > 0){
ry -= 10;
}
}