Hem E-böcker Specialeffekter och spelutveckling i Java Appleten AppletAnimator

Specialeffekter och spelutveckling i Java(TM) - Appleten AppletAnimator

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

public class appletanimator extends Applet implements Runnable {

public Thread programtrad = null;
//ImageArrayen "images" får vara global 
Image images[];
//"currentimage" får hålla reda på vilken bild som visas
int currentimage=0;

public void init()
{
    //initiera "images" med fyra element
    images=new Image[4];
    MediaTracker tracker=new MediaTracker(this);
    //vi använder oss av en for-slinga för att ladda
    //in bilderna
    for (int i=0; i < 4; i++)
    {
        //"bild0.gif","bild1.gif",...,"bild3.gif" kommer att
        //laddas in.
        images[i]=getImage(getDocumentBase(),"bild"+i+".gif");
        //identitetsnummret för varje bild måste ökas för
        //varje bild man lägger in i spåraren
        tracker.addImage(images[i],i);
    }
    //slutligen så ser vi till att spåraren laddar in bilderna
    try {tracker.waitForAll();}
    catch(InterruptedException e)
    {
        System.out.println("Någonting stoppade inladdningen...");
    }
}

public void start()
{
    if (programtrad == null)
    {
         programtrad = new Thread(this,"programtrad");
         programtrad.start();
    }
}

public void stop()
{
    if ((programtrad != null) && programtrad.isAlive())
        programtrad.stop();
    programtrad = null;
}

public synchronized void paint(Graphics g)
{
    //Integern "currentimage" används som index för "images"
    g.drawImage(images[currentimage],0,0,this);
}

public void update(Graphics g)
{
    paint(g);
}

public void run()
{
    while (true)
    {
        update(getGraphics());
        //"currentimage" ökas på så att nästa bild visas vid
        //nästa skärm-uppdatering
        currentimage++;
        //Den får dock inte överstiga indexsiffran 3
        if (currentimage > 3) currentimage=0;
        try {Thread.sleep(200);}
        catch(InterruptedException e) {}
    }
}

}