// a box has its dimensions and a bunch of balls in it
class box {
// attributes
float x, y; // top left coords of a box
float w, h; // width & height of the box
ballInBox[] balls; // Every box contains a number of balls
int nBalls;
// contructor(s)
box() {
this(random(width), random(height), 50, 50, 10);
} // box()
box(float _x, float _y, float _w, float _h, int n) {
x = _x;
y = _y;
w = _w;
h = _h;
nBalls = n;
// create n balls
balls = new ballInBox[nBalls];
// initialize ball objects
for (int i=0; i < nBalls; i++) {
balls[i] = new ballInBox(random(w), random(height/4, h),
2, color(0), this);
}
} // box()
// behavior(s)
void display() {
pushMatrix();
// draw the box
translate(x, y);
stroke(0);
fill(255);
rect(0, 0, w, h);
// draw the balls in it
for (int i=0; i < balls.length; i++) {
balls[i].display();
}
popMatrix();
} // display()
void update() {
// move every ball as it is supposed to move
for (int i=0; i < balls.length; i++) {
balls[i].move();
}
} // update()
} // class