Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/*/////////////////////////////////////////////////////////////////////////////////////////////
 *  Flashing Faces by Zhipu Chen
 *  Interactive drawing program
 *  By pressing the mouse the background and faces flash
 *  9/25/2017
/*/////////////////////////////////////////////////////////////////////////////////////////////

void setup() {
  size(400, 400); 
  frameRate(15);
  println("CLICK MOUSE AS FAST AS YOU CAN");
}

//Flash once when the mouse is pressed
void mousePressed()
{
  //Background color white
  background(225);

  //Draw corner faces
  strokeWeight(2);
  //Stroke color white
  stroke(225);
  //Fill with black
  fill(0);
  //Left up
  ellipse(width/4*2-mouseX, height/4*2-mouseY, 70, 70);
  //Right up
  ellipse(width/4*6-mouseX, height/4*2-mouseY, 70, 70);
  //Left down
  ellipse(width/4*2-mouseX, height/4*6-mouseY, 70, 70);
  //Right down
  ellipse(width/4*6-mouseX, height/4*6-mouseY, 70, 70);

  //Draw corner eyes
  stroke(225);
  fill(0);
    //Left up
  ellipse(185-mouseX, 190-mouseY, 12, 12);
  ellipse(215-mouseX, 190-mouseY, 12, 12);
    //Right up
  ellipse(630-mouseX, 190-mouseY, 12, 12);
  ellipse(570-mouseX, 190-mouseY, 12, 12);
    //Left down
  ellipse(185-mouseX, 580-mouseY, 12, 12);
  ellipse(215-mouseX, 580-mouseY, 12, 12);
    //Right down
  ellipse(630-mouseX, 580-mouseY, 12, 12);
  ellipse(570-mouseX, 580-mouseY, 12, 12);

  //Draw corner mouths
  //Left up
  ellipse(200-mouseX, 215-mouseY, 15, 15);
  //Right up
  ellipse(600-mouseX, 215-mouseY, 15, 15);
  //Left down
  ellipse(200-mouseX, 600-mouseY, 15, 15);
  //Right down
  ellipse(600-mouseX, 600-mouseY, 15, 15);
  stroke(0);

  //Draw center face
  stroke(225);
  rectMode(CENTER);
  rect(width/2, height/2, 100, 100);

  //Draw center eye
  strokeWeight(4);
  line(160, 185, 180, 170);
  line(240, 185, 220, 170);
  line(160, 170, 180, 185);
  line(240, 170, 220, 185);

  //Draw center mouth
  rect(200, 230, 40, 40);
}

void draw() {
  background(0);
  //Draw coner faces
  strokeWeight(2);
  stroke(0);
  fill(225);
  ellipse(width/4*2-mouseX, height/4*2-mouseY, 70, 70);
  ellipse(width/4*6-mouseX, height/4*2-mouseY, 70, 70);
  ellipse(width/4*2-mouseX, height/4*6-mouseY, 70, 70);
  ellipse(width/4*6-mouseX, height/4*6-mouseY, 70, 70);

  //Draw corner eyes
  stroke(0);
  fill(225);
  ellipse(185-mouseX, 190-mouseY, 12, 12);
  ellipse(215-mouseX, 190-mouseY, 12, 12);
  ellipse(630-mouseX, 190-mouseY, 12, 12);
  ellipse(570-mouseX, 190-mouseY, 12, 12);
  ellipse(185-mouseX, 580-mouseY, 12, 12);
  ellipse(215-mouseX, 580-mouseY, 12, 12);
  ellipse(630-mouseX, 580-mouseY, 12, 12);
  ellipse(570-mouseX, 580-mouseY, 12, 12);

  //Draw corner mouths
  ellipse(200-mouseX, 215-mouseY, 15, 15);
  ellipse(600-mouseX, 215-mouseY, 15, 15);
  ellipse(200-mouseX, 600-mouseY, 15, 15);
  ellipse(600-mouseX, 600-mouseY, 15, 15);
  stroke(225);

  //Draw center face
  stroke(0);
  rectMode(CENTER);
  rect(width/2, height/2, 100, 100);

  //Draw center eyes
  strokeWeight(4);
  line(160, 185, 180, 170);
  line(240, 185, 220, 170);

  //Draw center mouths
  rect(200, 230, 40, 40);
}