import processing.opengl.*;
float ballX[] = new float[500];
float ballY[] = new float[500];
float speedX[] = new float[500];
float speedY[] = new float[500];
float gravity[]= new float[500];
float a[]=new float[500];
void setup(){
size(300,300,OPENGL);
background(255,255,255);
for(int i=0; i<500; i++){
ballX[i] = 150;
ballY[i]=-50;
speedX[i]=random(4)-2;
speedY[i]=random(1);
gravity[i]=random(0.2)+0.1;
a[i]=random(100)+100;
}
}
void draw(){
background(255,255,255);
for (int i=0;i<500;i++){
speedY[i]=speedY[i]+gravity[i];
ballX[i]=ballX[i]+speedX[i];
ballY[i]=ballY[i]+speedY[i];
//벽에 부딪히면
// if(ballX[i]>width){
// speedX[i]=speedX[i]*-0.9;
// ballX[i]=width;
// }
// else if(ballX[i]<0){
// speedX[i]=speedX[i]*-0.9;
// ballX[i]=0;
// }
//바닥에 닿으면
if(ballY[i]>height){
speedY[i]=speedY[i]*-0.2;
ballY[i]=height;
}
//튀김이 작으면
if(abs(speedY[i])<0.05){
ballX[i] = 150;
ballY[i]=-50;
speedX[i]=random(2)-1;
speedY[i]=random(1);
gravity[i]=random(0.2)+0.1;
a[i]=random(100)+100;
}
//마우스
stroke(255);
fill(255,0,0);
ellipse(mouseX,mouseY,10,10);
//팅기기
if (abs(mouseX-ballX[i])<10 && abs(mouseY-ballY[i])<10) {
speedY[i] = speedY[i] * -0.1;
speedX[i] = speedX[i] * 0.5;
ballX[i] = ballX[i] + speedX[i]*25;
ballY[i] = ballY[i] + speedY[i]*10;
}
stroke(0,0,0,0);
fill(10,50,a[i],50);
ellipse(ballX[i],ballY[i],5,5);
}
}





