package KinematicSimulator; import java.awt.Color; import java.awt.Graphics; /** * A ball is a round Entity. * * @author Helena */ public class Ball extends Entity { private double r; private boolean locked; protected Ball() { } protected Ball( double d, double d1, double d2, double d3, double d4, Color color1) { super(d, d1, d2, d3, color1); r = d4; locked = false; } public String toString() { return x + " " + y + " " + r + " " + color; } public void draw(Graphics g) { g.setColor(Color.black); g.drawOval( (int) (x - r), (int) (y - r), (int) (r * 2D), (int) (r * 2D)); g.setColor(color); g.fillOval( (int) (x - r), (int) (y - r), (int) (r * 2D), (int) (r * 2D)); } public void lock() { locked = true; xv = 0.0D; yv = 0.0D; } public void unlock() { locked = false; } public void move() { x = x + xv; y = y + yv; } public double pos_x() { return x; } public double pos_y() { return y; } public void setPos(double d, double d1) { x = d; y = d1; } public double radius() { return r; } public boolean collision(Ball ball) { double d = x; double d1 = y; double d2 = ball.x; double d3 = ball.y; return Math.sqrt(Math.pow(d - d2, 2D) + Math.pow(d1 - d3, 2D)) < r + ball.r; } public void accelerate(double d, double d1) { if (!locked) { xv = xv + d; yv = yv + d1; } } }