int numMonsters = 30;
// Declare and create the array
Monster[] monsters = new Monster[numMonsters];
void setup() {
background(0);
smooth();
size(600, 400);
monsters = new Monster[numMonsters];
for(int i=0; i < numMonsters; i++) {
float x = 300 + i * 8;
float y = 200 + i * 8;
float s = 20 + i * 4;
monsters[i] = new Monster(x, y, s, 1);
}
}
void draw() {
background(0);
for(int i=0; i < numMonsters; i++) {
monsters[i].move();
monsters[i].display();
}
}
class Monster {
float x = width/2;
float y = height/2;
float shapesize;
float speed;
float freq = 1;
float amplitude = 3;
float facefill = 255;
float eyesize = shapesize*.05;
Monster (float xpos, float ypos, float xsize, float spd) {
x = xpos;
y = ypos;
speed = spd;
shapesize = xsize;
}
void move() {
x += random(-1, 1) * speed;
y += random(-1, 1) * speed;
x = constrain(x, 0, width - shapesize);
y = constrain(y, 0, height - shapesize);
}
void display() {
// face shape
stroke(255);
fill(facefill);
strokeWeight(2);
ellipseMode(CORNER);
ellipse(x, y, shapesize, shapesize);
//frames
stroke(255);
strokeWeight(2);
ellipseMode(CENTER);
fill(0);
ellipse(x+shapesize*.25, y+shapesize*.30, shapesize*.5, shapesize*.5);
fill(0);
ellipse(x+shapesize*.75, y+shapesize*.30, shapesize *.5, shapesize*.5);
// dot eyes
fill(255);
noStroke();
ellipseMode(CENTER);
ellipse(x+shapesize*.25, y+shapesize*.30, eyesize, eyesize);
ellipse(x+shapesize*.75, y+shapesize*.30, eyesize, eyesize);
// mouth
fill(255);
rect(x+shapesize*.35, y+shapesize*.55, shapesize*.35, shapesize*.35);
if (mousePressed == true) {
facefill=0;
speed = 25;
eyesize = shapesize*.4;
}
else {
facefill=255;
speed = 3;
eyesize = shapesize*.05;
}
}
void mouseReleased() {
facefill=255;
speed = 3;
}
}
Scott - M
on Monday, Nov 24, 2008 – 12:21 am