/*
 * Created on Jul 19, 2005
 *
 * CPS 006 - Summer 05
 * Sam Slee
 * Smiley2Applet.java
 * 
 * 
 */

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;

public class Smiley2Applet extends Applet implements ActionListener, MouseListener {

	private final int APPLET_WIDTH = 1000;
	private final int APPLET_HEIGHT = 700;
	private Timer timer;
	private Mover bob;
	//private Mover brett;
	
	
	//--------------------------------------------------------------------
	// this initializes the bouncer objects and listeners
	public void init(){
		
		// setting the window size and initializing my object
		setSize(APPLET_WIDTH, APPLET_HEIGHT);
		//bob = new Smiley2(APPLET_WIDTH/2, APPLET_HEIGHT/2);
		bob = new RectMover(50, 50, 0, 0, 100, 150);
		
		// adding this object as a listener for mouse events
		addMouseListener(this);
		
		// creating a timer and adding this object as the listener
		timer = new Timer(50, this);
		timer.start();
		
		// finally repainting
		repaint();
	}
	
	
	//--------------------------------------------------------------------
	// the paint method that calls the "draw"
	// method for every bouncer object
	public void paint(Graphics page){
		
		//brett.draw(page);
		bob.draw(page);
	}
	
	
	//--------------------------------------------------------------------
	// listener for mouse clicks
	// that calls the "chase" method for
	// every bouncer object on every click
	public void mouseClicked(MouseEvent event){
		
		//brett.chase(event.getX(), event.getY());
		bob.chase(event.getX(), event.getY());
		repaint();
	}
	
	
	//--------------------------------------------------------------------
	// listener for the timer
	// that calls the "update" method
	// for every bouncer object
	public void actionPerformed(ActionEvent event) {
		
	    //brett.update();
	    bob.update();
	    repaint();
	}
	
	
	//--------------------------------------------------------------------
	// unused methods
	public void mousePressed(MouseEvent event){}
	public void mouseReleased(MouseEvent event){}
	public void mouseEntered(MouseEvent event){}
	public void mouseExited(MouseEvent event){}
}
