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


public class Ps1 extends Applet implements Runnable{
  Image image;
  Raster raster;
  Playfield playfield;
  Thread animate;

  public void start() {
    animate = new Thread(this);
    animate.start();
  }

  public void stop() {
    animate = null;
  }

  public void run() {
    while (true) {
      try {
	animate.sleep(100);
      }
      catch (InterruptedException e) {
      }
      renderPlayfield( );
    }
  }

  public void renderPlayfield() {
    playfield.Draw();
    image = playfield.toImage();
  }

    
  public void init()
    {
      Raster bgnd = new Raster(500,500);
      /*      Raster box1 = new Raster(100,100);
      Raster box2 = new Raster(100,100);
      
      bgnd.fill(Color.black);
      box1.fill(Color.blue);
      box2.fill(Color.yellow); */
      
      playfield = new Playfield(bgnd.toImage(),1);

      /*      Sprite sprite1 = new Sprite(box1.toImage(),-50,-50);
	      Sprite sprite2 = new Sprite(box2.toImage(),160,160); */

      /*      playfield.addSprite(0,sprite1);
	      playfield.addSprite(1,sprite2); */

      Image world_img = Toolkit.getDefaultToolkit().getImage("WrldAni.gif");

      AnimatedSprite world = new AnimatedSprite(world_img,12);
      world.addState(0,0,1,1,1);
      world.addState(0,1,1,1,1);
      world.addState(0,2,1,1,1);
      world.addState(0,3,1,1,1);
      world.addState(0,4,1,1,1);
      world.addState(0,5,1,1,1);
      world.addState(0,6,1,1,1);
      world.addState(0,7,1,1,1);
      world.addState(0,8,1,1,1);
      world.addState(0,9,1,1,1);
      world.addState(0,10,1,1,1);
      world.addState(0,11,1,1,1);
      
      world.setTrack(0);

      playfield.addSprite(0,world);

      playfield.Draw();
      
      image = playfield.toImage();
    }

  public void paint(Graphics g)
    {
      g.drawImage(image,0,0,this);
    }

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

  
};

/*class AnimatedSpriteThread extends Thread
{
  AnimatedSprite as;
  Raster bgnd;


  public AnimatedSpriteThread(AnimatedSprite as, Raster bgnd) {
    super();
    this.as = as;
    this.bgnd = bgnd;
  }
  
  public void run() {
    for (long i = 0; i < 1000000; i++) {
      as.Draw(bgnd);
      try {
	sleep(as.currentTicks() * 100);
      }
      catch (InterruptedException e) { }
      as.nextState();
    }
  }


};
  
*/
