Classe Sprite

Eu estava lendo sobre a classe Sprite na explicação da sun: http://developers.sun.com/mobility/midp/articles/game/

A idéia da classe Sprite é possuir um um único objeto de imagem que possua todos os frames da imagem.

Mas o que eu não entendo é que neste código por exemplo:

[code]private MicroTankSprite createTank() {
Image image = null;
try { image = Image.createImage("/tank.png"); }
catch (IOException ioe) { return null; }

return new MicroTankSprite(image, 32, 32);

}[/code]

É passado uma imagem em png, como uma imagem com png pode guardar frames? Porque se por exemplo eu possuir uma imagem onde o personagem move-se, como eu vou fazer isso usando png, não deveria ser um gif?

Encontrei a resposta, o jeito é armazenar no png todos os frames mesmo. Como se fosse um filme, porque dai estaremos utilizando várias imagens com apenas um header. E para colocar cada frame na animação eu vou ter que usar o clip e ir recortando frame por frame.