Загрузка данных


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;
  }
}