Animazione 6

La stessa animazione viene visualizzata 6 volte con sovrapposizioni e ridimensionamenti

final int numFrame = 12;
final int numAnima = 6;

PImage     immagini[];
Animazione animazioni[];

void setup()
{
  size(500, 500);
  smooth();
  frameRate(numFrame);
   
  immagini=new PImage[numFrame];
  for(int i=0; i < numFrame; i++)
     immagini[i]=loadImage("a"+i+".gif");
 
  int dim=immagini[0].width;
  int x1=(width-2*dim)/3;
  int y1=(height-2*dim)/3;

  animazioni=new Animazione[numAnima]; 
  for(int i=0; i < numAnima; i++)  
     animazioni[i]=new Animazione(80*i, 80*i, 2*i, dim-20*i);
}
 
void draw()
{
  background(255);
 
  for(int i=0; i < numAnima; i++)
  {
     animazioni[i].disegna();
     animazioni[i].aggiorna();
  }
}

class Animazione
{
    int x, y, frame, dim;
   
    Animazione(int nX, int nY, int nFrame, int nDim)
    {
       x=nX; 
       y=nY;
       frame=nFrame;
       dim=nDim;
    }

    void aggiorna() 
    {
        frame=frame+1;
        if(frame == numFrame)
           frame=0;
    }
    void disegna()  
    {
        image(immagini[frame], x, y, dim, dim); 
    }
}