FireWorks


Java Source:

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

public class FireWorks extends Applet implements Runnable
{
  Dimension	d;
  Font 		font = new Font("Helvetica", Font.BOLD, 36);
  FontMetrics	fm;
  Graphics	goff;
  Image		ii;
  Thread	thethread;
  String	s;

  final int	numrockets=8;
  final int	num=16;
  int[]		xcoord, ycoord, xspeed, yspeed;
  int[]		count;
  boolean[]	exploding;

  public String getAppletInfo()
  {
    return("Fireworks - By Brian Postma");
  }

  public void init()
  {
    Graphics g;
    int i;
    d = size();
    g=getGraphics();
    g.setFont(font);
    fm = g.getFontMetrics();
    xcoord=new int[numrockets*num];
    ycoord=new int[numrockets*num];
    xspeed=new int[numrockets*num];
    yspeed=new int[numrockets*num];
    count=new int[numrockets];
    exploding=new boolean[numrockets];

    for (i=0; i0 && d.height>0)
    {
      ii = createImage(d.width, d.height);
      goff = ii.getGraphics();
      goff.setFont(font);
    }
    if (goff==null || ii==null)
      return;

    goff.setColor(Color.black);
    goff.fillRect(0, 0, d.width, d.height);
    FireWorks(goff);
    goff.setColor(new Color(128, 192, 255));
    goff.drawString(s,(d.width-fm.stringWidth(s)) / 2, d.height/2 );
    g.drawImage(ii, 0, 0, this);
  }


  public void FireWorks(Graphics g)
  {
    int		i,j,index;
    int		x,y,xspd,yspd;

    for (i=0; i0)
      { // explode
        exploding[i]=true;
        for (j=0; j=0) xspeed[index]++;
        }
      }
      for (j=0; j>3,ycoord[index]>>3,xcoord[index]>>3,ycoord[index]>>3);
        g.fillRect(xcoord[index]>>3, ycoord[index]>>3,2,2);
        xcoord[index]+=xspeed[index];
//        if (xcoord[index]<0)
//          xcoord[index]+=(d.width<<3);
//        if (xcoord[index]>(d.width<<3))
//         xcoord[index]-=(d.width<<3);
        ycoord[index]+=yspeed[index];
        yspeed[index]++;
      }
      count[i]--;
      if (count[i]<=0)
      {
        count[i]=128;
        exploding[i]=false;
//        x=((int)((Math.random()*(d.width/2)))+(d.width/4))<<3;
        x=((int)((Math.random()*d.width)))<<3;
        y=d.height<<3;
        yspd=(int)((Math.random()*28))-58;
        xspd=(int)((Math.random()*15.0))-8;
          if (xspd>=0) xspd++;
        for (j=0; j




How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.