import static java.lang.Math.*;
import java.awt.*;
import java.awt.image.BufferedImage;

public class Ball3 {
    private float x;  // x position in pixels
    private float y;  // y position in pixels
    private float dx; // delta x in pixels per loop
    private float dy; // delta y in pixels per loop
    private SimpleAnimation7 anim;
    private BufferedImage im;

    public Ball3(SimpleAnimation7 panel, BufferedImage image) {
        anim = panel;
        im = image;
        dx = (float) random() * 2 + 3;
        dy = (float) random() * 2 + 3;
    }

    // Update state
    public void update() {
        if (x < 0) {
            dx = abs(dx);
            anim.playSound();
        } else if (x + im.getWidth() > anim.getWidth()) {
            dx = -abs(dx);
            anim.playSound();
        }
        if (y < 0) {
            dy = abs(dy);
            anim.playSound();
        } else if (y + im.getHeight() > anim.getHeight()) {
            dy = -abs(dy);
            anim.playSound();
        }
        x += dx;
        y += dy;
    }

    // Render
    public void draw(Graphics g) {
        g.drawImage(im, round(x), round(y), null);
    }
}

