// The Ball class models ball objects // Each Ball has several attributes: // location, size, color, and how it moves class Ball { // Attributes float x, y; // location float radius; // its size color ballColor; // Ball color float dx; float dy; // Constructor(s) Ball() { radius = 25; x = random(radius, width-radius); y = random(radius, height-radius); ballColor = color(255, 0, 0); dx = random(4); dy = random(4); } // Ball() // Create a ball with given radius and color Ball(float r, color c) { radius = r; x = random(radius, width-radius); y = random(radius, height-radius); ballColor = c; dx = random(4); dy = random(4); } // Ball() // Behaviors void display() { noStroke(); fill(ballColor); circle(x, y, 2 * radius); } // display() void move() { x = x + dx; y = y + dy; bounce(); } // move() void bounce() { if (x > width-radius) { dx = -dx; } if (x < radius) { dx = -dx; } if (y > height-radius) { dy = -dy; } if (y < radius) { dy = -dy; } } // bounce() void collide(Ball b) { if (dist(x, y, b.x, b.y) <= (radius+b.radius)) { dx = -dx; dy = -dy; b.dx = -b.dx; b.dy = -b.dy; } } // collide() } // class Ball