/* "BBGun_Glass.java" (created 2/27/96) */
/* Java Applet, interactive BB gunfire (glass window pane target) */

import java.applet.Applet;
import java.awt.*;

public class BBGun_Glass extends java.applet.Applet {

 /* glass crack line length */
 int  lnLength; 

 /* methods invoked by Java */

 /* "init()"
  * initialize the applet */
 public void init()
 {

  /* 384 X 192 canvas (window pane same size as brick wall) */
  resize(384,192);

 /* init glass crack line length */
 lnLength = 6; 

 } /* end method "init" */


 /* "paint()"
  * paint the screen */
 public void paint(Graphics  g)
 {

  /* fill window pane with (blue) color */
  Color  glassBlue_Color = new Color(156,255,255);
  g.setColor(glassBlue_Color);
  g.fillRect(0,0,384,192); 

 } /* end method "paint" */


 /* "mouseDown()"
  * trap mouse down messages */
 public boolean mouseDown(Event e, int x, int y) {

  /* glass crack temporary coordinates */
  int  glassCrack_Coord,save_Coord;

  /* get component's window */
  Graphics g = getGraphics();

  /* fire a BB into the glass window pane */

  /* BB hole */
  g.setColor(Color.black);
  g.fillOval(x,y,7,7);
  g.setColor(Color.white);
  g.fillOval(x,y,5,5); 
  g.setColor(Color.black);

  /* glass crack (top--line1) */
  glassCrack_Coord = ((int) Math.round(Math.random() * lnLength)) + 1;
  /* (random left or right) */
  if (Math.round(Math.random() * 1) == 0)
    glassCrack_Coord = glassCrack_Coord * -1;
  glassCrack_Coord = x + glassCrack_Coord;
  g.drawLine(x,y,glassCrack_Coord,(y-5));
  /* glass crack (top--line2) */
  save_Coord = glassCrack_Coord;
  glassCrack_Coord = ((int) Math.round(Math.random() * lnLength)) + 1;
  /* (random left or right) */
  if (Math.round(Math.random() * 1) == 0)
    glassCrack_Coord = glassCrack_Coord * -1;
  glassCrack_Coord = save_Coord + glassCrack_Coord;
  g.drawLine(save_Coord,(y-lnLength),glassCrack_Coord,(y-(lnLength*2)));

  /* glass crack (right--line1) */
  glassCrack_Coord = ((int) Math.round(Math.random() * lnLength)) + 1;
  /* (random up or down) */
  if (Math.round(Math.random() * 1) == 0)
    glassCrack_Coord = glassCrack_Coord * -1;
  glassCrack_Coord = y + glassCrack_Coord;
  g.drawLine(x,y,x+5,glassCrack_Coord);
  /* glass crack (right--line2) */
  save_Coord = glassCrack_Coord;
  glassCrack_Coord = ((int) Math.round(Math.random() * lnLength)) + 1;
  /* (random up or down) */
  if (Math.round(Math.random() * 1) == 0)
    glassCrack_Coord = glassCrack_Coord * -1;
  glassCrack_Coord = save_Coord + glassCrack_Coord;
  g.drawLine((x+lnLength),save_Coord,(x+(lnLength*2)),glassCrack_Coord);

  /* glass crack (bottom--line1) */
  glassCrack_Coord = ((int) Math.round(Math.random() * lnLength)) + 1;
  /* (random left or right) */
  if (Math.round(Math.random() * 1) == 0)
    glassCrack_Coord = glassCrack_Coord * -1;
  glassCrack_Coord = x + glassCrack_Coord;
  g.drawLine(x,y,glassCrack_Coord,(y+lnLength));
  /* glass crack (bottom--line2) */
  save_Coord = glassCrack_Coord;
  glassCrack_Coord = ((int) Math.round(Math.random() * lnLength)) + 1;
  /* (random left or right) */
  if (Math.round(Math.random() * 1) == 0)
    glassCrack_Coord = glassCrack_Coord * -1;
  glassCrack_Coord = save_Coord + glassCrack_Coord;
  g.drawLine(save_Coord,(y+lnLength),glassCrack_Coord,(y+(lnLength*2)));

  /* glass crack (left--line1) */
  glassCrack_Coord = ((int) Math.round(Math.random() * lnLength)) + 1;
  /* (random up or down) */
  if (Math.round(Math.random() * 1) == 0)
    glassCrack_Coord = glassCrack_Coord * -1;
  glassCrack_Coord = y + glassCrack_Coord;
  g.drawLine(x,y,x-lnLength,glassCrack_Coord);
  /* glass crack (left--line2) */
  save_Coord = glassCrack_Coord;
  glassCrack_Coord = ((int) Math.round(Math.random() * lnLength)) + 1;
  /* (random up or down) */
  if (Math.round(Math.random() * 1) == 0)
    glassCrack_Coord = glassCrack_Coord * -1;
  glassCrack_Coord = save_Coord + glassCrack_Coord;
  g.drawLine((x-lnLength),save_Coord,(x-(lnLength*2)),glassCrack_Coord);

  return true;

 } /* end method "mouseDown" */

} /* end class "BBGun_Glass" */

/* end file "BBGun_Glass.java" */

[return]