package verticalBeam;

import java.awt.*;

import abstractAnimation.DoubledBufferedAnimationApplet;


public class VerticalBeam extends DoubledBufferedAnimationApplet 
{
	/**
	 * Permet l'exécution en tant qu'application
	 * @param applet
	 * @param arguments
	 */
	public static void main(String [] arguments)
	{
		DoubledBufferedAnimationApplet.main(new VerticalBeam(), arguments);
	}
	
	private int position;

    private int increment;
    
	private final int width = 32;
	
	/**
	 * remise à "zero" de l'animation.
	 * (re)initialisation des coordonnées des objets de l'animation, etc.
	 */
	protected void reset()
	{
		position = 0;
		increment = width / 4;
	}
	
	/**
	 * "battement" de l'animation.
	 * mise à jour des coordonnées des objets de l'animation, etc.
	 */
	protected void tick()
	{
		position += increment;
		position %= width;
	}

	/**
	 * le traçage proprement dit du dessin.
	 */
	protected void trace(Graphics graphics, Dimension dimension)
	{
		graphics.setColor(Color.BLACK);
		graphics.fillRect(0, 0, dimension.width, dimension.height);
		graphics.setColor(Color.WHITE);
		for(int i = 0 ; i < dimension.width - width ; i += width)
			graphics.fillRect(position + i, 0, width / 2, dimension.height);
	}
}
 
