import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class toy3 extends Applet
   implements MouseListener, MouseMotionListener {

   int width, height;
   int mx, my;  // the mouse coordinates
   boolean isButtonPressed = false;
int rr,gg,bb;
int dx,dy;
int xx,yy;
   public void init() {
      width = getSize().width;
      height = getSize().height;
      setBackground( Color.black );

      mx = width/2; //changes to new position
      my = height/2;
      dx = width/2; //center of screen
      dy = height/2;

      addMouseListener( this );
      addMouseMotionListener( this );
   }

   public void mouseEntered( MouseEvent e ) {
      // called when the pointer enters the applet's rectangular area
   }
   public void mouseExited( MouseEvent e ) {
      // called when the pointer leaves the applet's rectangular area
   }
   public void mouseClicked( MouseEvent e ) {
      // called after a press and release of a mouse button
      // with no motion in between
      // (If the user presses, drags, and then releases, there will be
      // no click event generated.)
   }
   public void mousePressed( MouseEvent e ) {  // called after a button is pressed down
      isButtonPressed = true;
      setBackground( Color.gray );
      repaint();
      // "Consume" the event so it won't be processed in the
      // default manner by the source which generated it.
      e.consume();
   }
   public void mouseReleased( MouseEvent e ) {  // called after a button is released
      isButtonPressed = false;
      setBackground( Color.black );
      repaint();
      e.consume();
   }
   public void mouseMoved( MouseEvent e ) {  // called during motion when no buttons are down
      mx = e.getX();
      my = e.getY();
      showStatus( "Mouse at (" + mx + "," + my + ")" );
      repaint();
      e.consume();
   }
   public void mouseDragged( MouseEvent e ) {  // called during motion with buttons down
      mx = e.getX();
      my = e.getY();
      showStatus( "Mouse at (" + mx + "," + my + ")" );
      repaint();
      e.consume();
   }

   public void paint( Graphics g ) {
      if ( isButtonPressed ) {
         g.setColor( Color.black );
      }
      else {



        
      }


xx=dx-mx;
yy=dy-my;

for(int cat=-30;cat<31;cat=cat+30)
{

for(int kk=-50; kk<51; kk=kk+10)
{
rr=rr+1;
if(rr>255){rr=30;}
gg=gg+2;
if(gg>253){gg=30;}
bb=bb+3;
if(bb>250){bb=30;}
 Color cNew = new Color(rr, gg, bb);
  g.setColor(cNew);       
xx=xx+kk+kk-cat;
yy=yy-kk+cat;
//set1
      g.fillRect(dx- xx,dy- yy, 10, 10 );
g.fillRect(dx+ xx,dy+ yy, 10, 10 );
      g.fillRect(dx+ xx,dy- yy, 10, 10 );
g.fillRect(dx- xx,dy+ yy, 10, 10 );
//set2
      g.fillRect(dx- yy,dy- xx, 10, 10 );
g.fillRect(dx+ yy,dy+ xx, 10, 10 );
      g.fillRect(dx+ yy,dy- xx, 10, 10 );
g.fillRect(dx- yy,dy+ xx, 10, 10 );
xx=xx-kk-kk+cat;
yy=yy+kk-cat;
}
}
   }
}
