La stessa animazione viene visualizzata 4 volte ma con i fotogrammi sfasati (0, 3, 6, 9).
final int numFrame = 12;
final int numAnima = 4;
int dim;
PImage immagini[];
Animazione animazioni[];
void setup()
{
size(500, 500);
frameRate(numFrame);
immagini=new PImage[numFrame];
for(int i=0; i < numFrame; i++)
immagini[i]=loadImage("a"+i+".gif");
dim=200;
int x1=(width-2*dim)/3;
int y1=(height-2*dim)/3;
animazioni = new Animazione[numAnima];
animazioni[0] = new Animazione(x1, y1, 0);
animazioni[1] = new Animazione(x1+dim+x1, y1, 3);
animazioni[2] = new Animazione(x1, y1+dim+y1, 6);
animazioni[3] = new Animazione(x1+dim+x1, y1+dim+y1, 9);
}
void draw()
{
background(255);
for(int i=0; i < numAnima; i++)
{
animazioni[i].disegna();
animazioni[i].aggiorna();
}
}
class Animazione
{
int x, y, frame;
Animazione(int nX, int nY, int nFrame)
{
x=nX;
y=nY;
frame=nFrame;
}
void aggiorna()
{
frame=frame+1;
if(frame == numFrame)
frame=0;
}
void disegna()
{
image(immagini[frame], x, y, dim, dim);
}
}