Nella seguente classe mi viene indicato un errore nella mancata allocazione della classe Animation:

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

public class Sprite {

private String ss = "Haggar.gif";
private int Animation_id;
private int Frame_id;
public int dx;
public int dy;
private int x;
private int y;
private BufferedImage SpriteSheet;
private animation[] Animation;

public Sprite() {
try {
SpriteSheet = ImageIO.read(new File(ss));
} catch (IOException e) {
}
x = 40;
y = 60;
Animation_id=1;
Frame_id=1;
Animation= new animation[8];
Animation[0]=new animation();
Animation[0].add_frame(SpriteSheet.getSubimage(0, 0, 100, 100));
/* Sulla riga in esecuzione ho la seguente eccezione: java.lang.NullPointerException*/
}

...............................
.............................

class animation {
int num_frames;
BufferedImage[] frames;
animation( ){
num_frames=0;
}
public void add_frame(BufferedImage frame){
num_frames++;
frames[num_frames]=frame;

}
}
}

Dove sta lo sbaglio?