Pregunta

Tal vez no muy grande, pero cien marcos o algo. Es la única manera de cargarlo en al hacer una matriz y la carga de cada imagen individual?

load_image () es una función que hice que carga las imágenes y convierte su BPP.

expl[0] = load_image( "explode1.gif" );
expl[1] = load_image( "explode2.gif" );
expl[2] = load_image( "explode3.gif" );
expl[3] = load_image( "explode4.gif" );
...
expl[99] = load_image( "explode100.gif" );

Parece que su debe haber una mejor manera .. al menos eso espero.

¿Fue útil?

Solución

Una técnica común es spritesheets, en los que una sola imagen, grande se divide en una cuadrícula de celdas, con cada célula que contiene un cuadro de una animación. A menudo, los cuadros de animación para cualquier entidad del juego se colocan en una sola hoja de veces enorme,, sprite.

Otros consejos

tal vez simplificar su carga con una función de utilidad que construye un nombre de archivo para cada iteración de un bucle:

LoadAnimation(char* isFileBase, int numFrames)
{
    char szFileName[255];
    for(int i = 0; i < numFrames; i++)
    {
       // append the frame number and .gif to the file base to get the filename
       sprintf(szFileName, "%s%d.gif", isFileBase, i);
       expl[i] = load_image(szFileName);
    }
}

En lugar de carga como una rejilla, apilar todos los fotogramas de una tira vertical (misma imagen). Entonces sólo necesita saber el número de filas por cuadro y se puede establecer un puntero a la estructura de compensación fila. Se termina por dejar de tener líneas de exploración contiguas que se pueden visualizar directamente o trivialmente masticado en imágenes separadas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top