Hola,
Cuando estudiaba me hicieron de hacer un Pacman en una práctica. Tenía una imagen que contenía todos los fantasmas y los pacman. Usaba un array para guardar todas las posiciones de un fantasma (hacia arriba, abajo, derecha o izquierda). La segunda dimensión del array era porque había 2 fantasmas por cada posición que variaban ligeramente para hacer un efecto de movimiento.
Código:
BufferedImage imagenesTroceadas = new BufferedImage[4][2];
for(int i = 0; i<imagenesTroceadas.length; i++)
{
for(int j = 0; j<imagenesTroceadas[i].length; j++)
{
imagenesTroceadas[i][j] = imagenes.getSubimage(j*32, i*32, 32, 32);
}
}
Nota 32 era el tamaño en píxeles de cada fantasmita.
Saludos.