Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
// By Saahel Gulistani

// Hold Space to show Devil
// Mouse click quickly to see Night and show stars twinkle

  // Main Setup
void setup() {
  
  // Screen Size
  size(500,500);
  
  // Shape Modes
  rectMode(CENTER);

}

  // Graphic Components
void draw() {
  
  // Background Day
  background(0,188,241);
  
  // Add Lines
  stroke(0);
  
  // Grass Day
  fill(29,241,0);
  ellipse(200,400,500,200);
  ellipse(300,380,500,200);
  ellipse(0,420,400,200);
  ellipse(500,450,700,200);
  ellipse(100,480,400,200);
  ellipse(300,550,400,200);
  
  // Remove Lines
  noStroke();
  
  // Sun
  fill(241,194,0);
  ellipse(100,150,70,70);
  fill(241,194,0,125);
  ellipse(100,150,85,85);
  ellipse(100,150,sin(frameCount/10)*95,sin(frameCount/10)*95);

}

  // Mouse Button Press Action
void mousePressed () {
  
  // Frame Rate
  frameRate(10);
    
  // Background Night
  background(0,7,51);
  
  // Add Lines
  stroke(0);

  // Grass Night
  fill(9,66,0);
  ellipse(200,400,500,200);
  ellipse(300,380,500,200);
  ellipse(0,420,400,200);
  ellipse(500,450,700,200);
  ellipse(100,480,400,200);
  ellipse(300,550,400,200);
  noStroke();
  
  // Moon
  fill(180,201,218);
  ellipse(400,150,70,70);
  
  // Moon Cresent
  fill(0,7,51);
  ellipse(mouseX,150,70,70);
  
  // Stars
  fill(255);
  ellipse(50,50,sin(frameCount/12)*4,15);
  ellipse(50,50,15,sin(frameCount/12)*4);
  
  ellipse(25,270,sin(frameCount/14)*4,15);
  ellipse(25,270,15,sin(frameCount/14)*4);
  
  ellipse(70,150,sin(frameCount/12)*4,15);
  ellipse(70,150,15,sin(frameCount/12)*4);
  
  ellipse(200,200,sin(frameCount/14)*4,15);
  ellipse(200,200,15,sin(frameCount/14)*4);
  
  ellipse(130,110,sin(frameCount/12)*4,15);
  ellipse(130,110,15,sin(frameCount/12)*4);
  
  ellipse(220,30,sin(frameCount/14)*4,15);
  ellipse(220,30,15,sin(frameCount/14)*4);
  
  ellipse(260,160,sin(frameCount/12)*4,15);
  ellipse(260,160,15,sin(frameCount/12)*4);
  
  ellipse(300,70,sin(frameCount/14)*4,15);
  ellipse(300,70,15,sin(frameCount/14)*4);
  
  ellipse(400,30,sin(frameCount/12)*4,15);
  ellipse(400,30,15,sin(frameCount/12)*4);
  
  ellipse(460,250,sin(frameCount/14)*4,15);
  ellipse(460,250,15,sin(frameCount/14)*4);

  // Lamp Light 1
  fill(230,212,0,40);
  ellipse(mouseX,mouseY+35,25,40);
  
  // Lamp Light 2
  fill(230,212,0,200);
  ellipse (mouseX,mouseY+35,sin(frameCount/10)*18,sin(frameCount/10)*30);
  
  // Lamp Top
  fill(56,15,0);
  rect(mouseX,mouseY+55,30,12,7);
  
  // Lamp Botton
  fill(56,15,0);
  rect(mouseX,mouseY+15,30,12,7);
  
  // Lamp Handle
  stroke(56,15,0);
  line(mouseX-15,mouseY+15,mouseX,mouseY);
  line(mouseX+15,mouseY+15,mouseX,mouseY);
  noStroke();
  
}

  // Keyboard Button Press Action
void keyPressed () {
  
  // Frame Rate
  frameRate(30);
  
  // Eyes
  background(128,8,0);
  fill(230,8,0);
  ellipse(100,100,100,150);
  ellipse(400,100,100,150);
  
  // Pupils
  fill(0);
  ellipse(100,100,35,150);
  ellipse(400,100,35,100);
  
  // Mouth
  fill(255);
  ellipse(250,325,450,200);
  fill(128,8,0);
  ellipse(250,260,450,200);
  
  // Teeth
  stroke(0);
  strokeWeight(2);
  line(38,293,75,388);
  line(75,388,100,335);
  line(462,293,425,388);
  line(425,388,400,335);
  line(100,335,125,408);
  line(400,335,375,408);
  line(125,408,160,351);
  line(375,408,340,351);
  line(160,351,180,420);
  line(340,351,320,420);
  line(180,420,215,358);
  line(320,420,285,358);
  line(215,358,250,425);
  line(285,358,250,425);
  noStroke();
  
}