import java.util.Vector;
import java.awt.*;
import java.awt.image.PixelGrabber;

class MultiSprite extends Sprite {
  private Vector bitmaps;
  private int curImage;  // the current image which the sprite displays
  private int numImages;

  MultiSprite(int x, int y) {
    // effects:  creates a new MultiSprite with num seperate images
    this.x = x;
    this.y = y;
    numImages = 0;
    bitmaps = new Vector();
    curImage = 0;
  }

  public void nextImage() {
    // effects:  sets current image to be next in series
    curImage++;
    curImage = curImage % numImages;
    pixel = (int[])bitmaps.elementAt(curImage);
  }



  public void prevImage() {
    // effects:  sets current image to be previous in series
    if(curImage == 0)
      curImage = numImages-1;
    else
      curImage--;
    pixel = (int[])bitmaps.elementAt(curImage);
  }


  public void addImage(Image img) {
    // effects:  adds one image to the series of images in this MultiSprite

    // setup the new bitmap
    int[] bitmap = new int[width*height];
    
    
    // get the pixels from the image
    try {
      PixelGrabber grabber = new PixelGrabber(img, 0, 0, -1, -1, true);
      if (grabber.grabPixels()) {
	width = grabber.getWidth();
	height = grabber.getHeight();
	bitmap = (int []) grabber.getPixels();
      }
    } catch (InterruptedException e) {}

    // stick the pixels into the vector containing all images
    bitmaps.addElement(bitmap);
    numImages++;

    // set the new image to be the current image
    pixel = (int[])bitmaps.elementAt(numImages-1);
  }
}
    


  
