Hola Renatus, parece que estamos "trabajando en lo mismo". Los tiles animados es lo ultimo que he desarrollado, te explico como lo hago yo.
He programado una estructura llamara TileSet, cada una contiene un array con tiles separados (en respuesta a lo que preguntabas acerca de mantenerlos juntos y recortar o tenerlos ya por separado, aunque no se si será más eficiente, pero a mi me resulta más cómodo). Un campo de esta estructura decide si contiene tiles animados o tiles simples, si este campo dice que son animados, le da sentido a otros campos de la estructura que son frame, numFrames, t y tFrame, y estos campos tiene este significado:
frame: la secuencia en la que se encuentra la animacion
numFrames: numero maximo de frames de la animacion (como es un campo comun para todos los tiles de la estructura, esta estructura contendra animaciones de un total de numFrames)
tFrame: numero de "flips" que deben hacerse de pantalla antes de que incremente el frame de la animacion (la velocidad de la animacion no solo dependerá de esto, va relacionada obviamente con los FPS que hayamos establecido en el entorno)
t: cuantos flips de pantalla llevamos (cuando llegue a tFrame incrementaremos el frame y volvera a valer0)
A parte de esto a cada tile digamos que le doy un valor, incluso a cada uno de los tiles dentro de una animacion... imagina que tengo una animacion de una antorcha, en la pantalla se verian todas las antorchas iguales.... no necesariamente, dependiendo del valor de referencia con el que se haya dibujado en pantalla; si la animacion de la antorcha va de los valores 1 al 4, puedo dibujar dos antorchas en pantalla que se vean en fases diferentes, una la dibujas con el 1 y otra con el 3, despues de animarse tendran valores 2 y 4, luego 3 y 1... etc
Espero que te haya servido, te dejo una pagina interesantisima, seguro que aqui lo explica mejor que yo
:
http://www.vjuegos.org/modules.php?name=Contentmétete en la seccion manipulacion de objetos ya veras....
Un saludo !