import pgss.*;
import java.awt.*;

public class BreakoutWindow extends GraphicsWindow {
    private Ball initial_ball;
    private Block[] blocks;

    public BreakoutWindow() {
        initial_ball = new Ball(95, 180, 2.0, -1.1);
        blocks = new Block[] {
            new Block( 12, 15, 35, 15),
            new Block( 59, 15, 35, 15),
            new Block(106, 15, 35, 15),
            new Block(153, 15, 35, 15),
            new Block( 12, 35, 35, 15),
            new Block( 59, 35, 35, 15),
            new Block(106, 35, 35, 15),
            new Block(153, 35, 35, 15),
            new Block( 12, 55, 35, 15),
            new Block( 59, 55, 35, 15),
            new Block(106, 55, 35, 15),
            new Block(153, 55, 35, 15)
        };
    }

    public void run() {
        Ball ball = initial_ball;
        while(true) {
            // step ball
            ball.step(this);
            for(int i = 0; i < blocks.length; i++) {
                blocks[i].bounce(ball);
            }
            
            // draw screen
            this.clearAll();
            Graphics g = this.getGraphics();
            ball.draw(g);
            for(int i = 0; i < blocks.length; i++) {
                blocks[i].draw(g);
            }
            this.repaint();
            
            // wait 20 milliseconds to draw next frame
            Clock.sleep(20);
        }
    }

    public static void main(String[] args) {
        BreakoutWindow frame = new BreakoutWindow();
        frame.show();
        frame.run();
    }
}
