Racing Ameba
From Physical Programming
/* an update version of the Amebas...
this program plays with the scaling of .png images, might be useful*/
int numFrames = 24;
int frame = 0;
PImage[] images = new PImage[numFrames];
int x = 0;
int y = 0;
int z = 0;
void setup(){
size(500, 200);
//frameRate(45);
images[0] = loadImage("0001.png");
images[1] = loadImage("0002.png");
images[2] = loadImage("0003.png");
images[3] = loadImage("0004.png");
images[4] = loadImage("0005.png");
images[5] = loadImage("0006.png");
images[6] = loadImage("0007.png");
images[7] = loadImage("0008.png");
images[8] = loadImage("0009.png");
images[9] = loadImage("0010.png");
images[10] = loadImage("0011.png");
images[11] = loadImage("0012.png");
images[12] = loadImage("0013.png");
images[13] = loadImage("0014.png");
images[14] = loadImage("0015.png");
images[15] = loadImage("0016.png");
images[16] = loadImage("0017.png");
images[17] = loadImage("0018.png");
images[18] = loadImage("0019.png");
images[19] = loadImage("0020.png");
images[20] = loadImage("0021.png");
images[21] = loadImage("0022.png");
images[22] = loadImage("0023.png");
images[23] = loadImage("0024.png");
}
void draw(){
background(255,205,205);
drawCell(x);
bigCell(y);
smallCell(z);
x++;
if (x>width)
x=-50;
y++;
if (y>width/2)
y=-50;
z++;
if (z>width*2)
z=-10;
}
void drawCell(int x)
{
frame = (frame+1)%numFrames;
image(images[frame], x, 10);
}
void bigCell(int y)
{
scale(2);
frame = (frame+1)%numFrames;
image(images[frame], y, 50);
}
void smallCell(int z)
{
scale(0.25);
frame = (frame+1)%numFrames;
image(images[frame], z, 150);
}