// (c) Academic Java. All rights reserved.
// See http://academicjava.com/animations/conditions.html for conditions of use

package animations;

import java.awt.*;
import javax.swing.*;
import org.academicjava.animation.*;

public class Balls {

	public static void main(String[] args) {

		int s = 250;
		final ACanvas canvas = new ACanvas(Color.black, s, s);
		JFrame frame = new JFrame("Moving Balls");
		Container cp = frame.getContentPane();
		cp.add(canvas, BorderLayout.CENTER);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);

		int n = 4;
		Color[] cola = {Color.cyan, Color.yellow, Color.pink, Color.magenta};
		ACircle[] ca = new ACircle[4];

		canvas.setAnimationTime(3000);
		canvas.setConcurrentAnimation(true);

		for (int i = 0; i < n; ++i) {
			ca[i] = new ACircle(cola[i], 70);
			canvas.add(ca[i]);
			ca[i].setTransparency(0.7);
			ca[i].draw();
		}

		ca[0].moveTo(0, 0);
		ca[1].moveTo(0, s);
		ca[2].moveTo(s, 0);
		ca[3].moveTo(s, s);

		ca[0].moveTo(s, s);
		ca[1].moveTo(s, 0);
		ca[2].moveTo(0, s);
		ca[3].moveTo(0, 0);

		for (int i = 0; i < n; ++i) {
			ca[i].moveTo();
		}

		int d = 25;
		ca[0].moveBy(-d, -d);
		ca[1].moveBy(-d, d);
		ca[2].moveBy(d, -d);
		ca[3].moveBy(d, d);

		for (int i = 0; i < n; ++i) {
			ca[i].rotate(s / 2, s / 2, 360);
		}

	}
}