xxxxxxxxxx
ArrayList<Bubble> bubbles = new ArrayList<Bubble>();
int border;
void setup() { //setup function called initially, only once
size(400,400);
border = 100;
frameRate(30);
for(int i = 0; i < 20; i++){
bubbles.add(new Bubble());
}
}
void draw() { //draw function loops
background(255,100,100);
for(int i = 0; i < 2; i++){
bubbles.add(new Bubble());
}
for (int i = (bubbles.size()-1); i >= 0; i--) {
Bubble b = bubbles.get(i);
b.update();
if(b.pos.x > width + border){bubbles.remove(i);}
if(b.pos.x < 0 - border){bubbles.remove(i);}
if(b.pos.y > height + border){bubbles.remove(i);}
if(b.pos.y < 0 - border){bubbles.remove(i);}
}
}
class Bubble{
PVector pos;
PVector vel;
float time;
float st;
float sz = random(5,40);
Bubble(){
time = 0;
st = random(0.1,0.5);
pos = new PVector(random(width), random(height));
vel = new PVector(random(-2,2),random(-2,2));
}
void update(){
time += st;
if (time > 64) time = 64;
move();
render();
}
void move(){
pos.add(vel);
}
void render(){
fill(255,time);
noStroke();
ellipse(pos.x, pos.y,sz,sz);
}
}