...
| Code Block |
|---|
ArrayList<Ball> ballList = new ArrayList<Ball>();
Ball mouseBall;
void setup()
{
size(600, 800);
ballList.add(new Ball(width/2, height/2, 40));
mouseBall = new Ball(mouseX, mouseY, 20);
}
void draw()
{
background(255);
mouseBall.update(mouseX, mouseY);
for (int i = 0; i<ballList.size(); i++) {
ballList.get(i).drawBall();
mouseBall.checkCollision(ballList.get(i)._position, ballList.get(i)._radius);
}
mouseBall.drawBall();
}
class Ball {
PVector _position = new PVector();
int _radius;
int colour = 250;
public Ball(int x, int y, int r) {
_position.set(x, y, 0);
_radius = r;
}
void update(int x, int y) {
_position.set(x, y, 0);
}
void drawBall() {
pushMatrix();
fill(colour, 0, 0);
noStroke();
translate(_position.x, _position.y);
ellipse(0, 0, _radius*2, _radius*2);
popMatrix();
}
void checkCollision(PVector position, int radius) {
float distance = PVector.dist(_position, position);
if (distance <= radius +_radius) {
println("hit");
colour = 60;
} else {
colour = 255;
}
}
}
|
Exercise
Add collision detection to the last exercise in Classes and Objects.