Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//Friendly Giant
//By: Alexander Massart
/////////////////////////////
void setup() {
  //set size of screen
  size(400, 400);
}
void draw() {
  //set the frame rate
  frameRate(60);
  //Set the background color
  background(14, 29, 113);
  //remove stroke
  noStroke();
  /////////////////////////
  /////Body////////////////
  fill(178, 11, 22, 230);
  ellipse(200, 350, 200, 300);
  /////////////////////////
  //////Ground/////////////
  fill(108, 88, 4);
  rect(0, 300, 400, 100);
  //////////////////////////
  //////Head////////////////
  fill(178, 11, 22, 230);
  ellipse(200, 150, 150, 100);
  /////////////////////////
  /////Eye 1///////////////
  fill(198, 10, 23);
  ellipse(115, 150, 100, 100);
  fill(253, 255, 206);
  ellipse(115, 150, 90, 90);
  fill(0);
  triangle(115, 195, 120, 150, 110, 150);
  triangle(115, 105, 120, 150, 110, 150);
  fill(198, 10, 23);
  arc(100, 150, 60, 100, radians(90), radians(270));
  arc(130, 150, 60, 100, radians(270), radians(450));
  ///////////////////////////////////////////
  //////Eye 2////////////////////////
  fill(198, 10, 23);
  ellipse(285, 150, 100, 100);
  fill(253, 255, 206);
  ellipse(285, 150, 90, 90);
  fill(0);
  triangle(285, 195, 290, 150, 280, 150);
  triangle(285, 105, 290, 150, 280, 150);
  fill(198, 10, 23);
  arc(270, 150, 60, 100, radians(90), radians(270));
  arc(300, 150, 60, 100, radians(270), radians(450));
  /////////////////////////////////////////////////
  //////Inside Mouth//////////////////////////////
  noStroke();
  rectMode(CENTER);
  fill(0);
  rect(200, 195, 110, 100);
  fill(242, 105, 158, 100);
  rect(200, 195, 110, 100);
  fill(242, 44, 120, 100);
  rect(200, 195, 100, 100);
  ///////////////////////////////////////////////
  //////Upper Mouth and Nose////////////////////
  stroke(0);
  strokeWeight(2);
  fill(220, 0, 0);
  quad(143, 140 - mouseX/35, 257, 140 - mouseX/35, 257, 210 - mouseX/25, 143, 210 - mouseX/25);
  fill(0);
  ellipse(220, 165 - mouseX/25, 10, 30);
  ellipse(180, 165 - mouseX/25, 10, 30);
  ////////////////////////////////
  ////////Lower Mouth////////////
  stroke(0);
  fill(220, 0, 0);
  quad(143, 250 + mouseX/35, 257, 250 + mouseX/35, 257, 210 + mouseX/25, 143, 210 + mouseX/25);
  //////Tree 1//////////////
  noStroke();
  rectMode(CORNER);
  fill(175, 145, 21);
  quad(50, 350, 100, 350, 100- mouseX/25, 300, 50- mouseX/25, 300);
  stroke(0, 255, 0);
  strokeWeight(2);
  fill(21, 175, 22);
  triangle(25, 315 + mouseX/15, 125, 315 - mouseX/15, 75 - mouseX/15, 150);
  //////////////////////////
  //////Tree 2//////////////
  noStroke();
  fill(175, 145, 21);
  quad(350, 350, 300, 350, 300 + mouseX/25, 300, 350 + mouseX/25, 300);
  stroke(0, 255, 0);
  strokeWeight(2);
  fill(21, 175, 22);
  triangle(375, 315 + mouseX/15, 275, 315 - mouseX/15, 325 + mouseX/15, 150);
  //////////////////////////
  ////Bubbles///////////////
  stroke(0, 0, 0, 0 + mouseX/2);
  strokeWeight(3);
  fill(255, 255, 255, 0 + mouseX/2);
  ellipse(250, 75, 20, 20);
  ellipse(285, 70, 20, 20);
  ellipse(335, 35, 100, 50);
  ///////////////////////////
  /////Speech///////////////
  fill(0, 0, 0, 0 + mouseX/2);
  rect(310, 25, 3, 20);
  rect(325, 25, 3, 20);
  rect(340, 28, 3, 17);
  rect(340, 20, 3, 3);
  rect(310, 33, 13, 3);
}
void mousePressed() {
  //slow frame rate to keep blink for longer
  frameRate(6);
  //draw blinking
  noStroke();
  fill(198, 10, 23);
  ellipse(285, 150, 100, 100);
  fill(198, 10, 23);
  ellipse(115, 150, 100, 100);
  //////Tree 1//////////////
  noStroke();
  rectMode(CORNER);
  fill(175, 145, 21);
  quad(50, 350, 100, 350, 100- mouseX/25, 300, 50- mouseX/25, 300);
  stroke(0, 255, 0);
  strokeWeight(2);
  fill(21, 175, 22);
  triangle(25, 315 + mouseX/15, 125, 315 - mouseX/15, 75 - mouseX/15, 150);
  //////////////////////////
  //////Tree 2//////////////
  noStroke();
  fill(175, 145, 21);
  quad(350, 350, 300, 350, 300 + mouseX/25, 300, 350 + mouseX/25, 300);
  stroke(0, 255, 0);
  strokeWeight(2);
  fill(21, 175, 22);
  triangle(375, 315 + mouseX/15, 275, 315 - mouseX/15, 325 + mouseX/15, 150);
  /////////////////////////////////////////////////
  //////Inside Mouth//////////////////////////////
  noStroke();
  rectMode(CENTER);
  fill(0);
  rect(200, 195, 110, 100);
  fill(242, 105, 158, 100);
  rect(200, 195, 110, 100);
  fill(242, 44, 120, 100);
  rect(200, 195, 100, 100);
  ///////////////////////////////////////////////
  //////Upper Mouth and Nose////////////////////
  stroke(0);
  strokeWeight(2);
  fill(220, 0, 0);
  quad(143, 140 - mouseX/35, 257, 140 - mouseX/35, 257, 210 - mouseX/25, 143, 210 - mouseX/25);
  fill(0);
  ellipse(220, 165 - mouseX/25, 10, 30);
  ellipse(180, 165 - mouseX/25, 10, 30);
  ////////////////////////////////
  ////////Lower Mouth////////////
  stroke(0);
  fill(220, 0, 0);
  quad(143, 250 + mouseX/35, 257, 250 + mouseX/35, 257, 210 + mouseX/25, 143, 210 + mouseX/25);
  //////Tree 1//////////////
  noStroke();
  rectMode(CORNER);
  fill(175, 145, 21);
  quad(50, 350, 100, 350, 100- mouseX/25, 300, 50- mouseX/25, 300);
  stroke(0, 255, 0);
  strokeWeight(2);
  fill(21, 175, 22);
  triangle(25, 315 + mouseX/15, 125, 315 - mouseX/15, 75 - mouseX/15, 150);
}