Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/* Ata Dogan
Introduction to Media Computaion
Assignment #1
*/

//Sunny Day and a Worm

void setup() {
  // sets the size of window and framerate
  
  size(400,400);
  smooth();
  frameRate(60);
}

void draw() {
  // ***draw a light blue background
   background(0,75,107);
   fill(171,224,225,255-mouseY/2);
   rect(0,0,400,400);
   
  
  // Sun and Sun Flares Spin based on frame count
  rectMode(CENTER);
  translate(80,80+mouseY/2.5);
  rotate(frameCount * 0.01);
  fill(255,237,42, 60-mouseY/5);
  rect(0,0,20,325,20);
  rotate(-frameCount * 0.01);
  translate(-80,-80-mouseY/2.5);
  
  translate(80,80+mouseY/2.5);
  rotate((frameCount * 0.01)+5);
  fill(255,237,42, 60-mouseY/5);
  rect(0,0,20,325,20);
  rotate((-frameCount * 0.01)-5);
  translate(-80,-80-mouseY/2.5);

  translate(80,80+mouseY/2.5);
  rotate((frameCount * 0.01)+10);
  fill(255,237,42, 60-mouseY/5);
  rect(0,0,20,325,20);
  rotate((-frameCount * 0.01)-10);
  translate(-80,-80-mouseY/2.5);
    
  translate(80,80+mouseY/2.5);
  rotate((frameCount * 0.01)+15);
  fill(255,237,42, 60-mouseY/5);
  rect(0,0,20,325,20);
  rotate((-frameCount * 0.01)-15);
  translate(-80,-80-mouseY/2.5);
  
  translate(80,80+mouseY/2.5);
  rotate((frameCount * 0.01)+20);
  fill(255,237,42, 60-mouseY/5);
  rect(0,0,20,325,20);
  rotate((-frameCount * 0.01)-20);
  translate(-80,-80-mouseY/2.5);
  
  //Sun itself
  ellipseMode(CENTER);
  fill(255,237,42);
  ellipse(80,80+mouseY/2.5,40,40);
  fill(255,237,42,100);
  ellipse(80,80+mouseY/2.5,50,50); 
  fill(255,237,42,60);
  ellipse(80,80+mouseY/2.5,60,60);
  
  // Clouds
  
  fill(255, 255, 255);
  noStroke();
  rect(mouseX/2+130, 30, 55, 8, 20);
  rect(mouseX/2+145, 37, 5, 15, 20);
  rect(mouseX/2+153, 45, 45, 8, 20);  
  
  fill(255, 255, 255);
  noStroke();
  rect(mouseX/4+50, 110, 70, 8, 20);
  rect(mouseX/4+60, 117, 7, 15, 20);
  rect(mouseX/4+70, 125, 55, 8, 20);
  
  fill(255, 255, 255);
  noStroke();
  rect(mouseX/3+140, 80, 55, 8, 20);
  rect(mouseX/3+155, 87, 5, 15, 20);
  rect(mouseX/3+163, 95, 45, 8, 20);  
  
  fill(255, 255, 255);
  noStroke();
  rect(mouseX/3+300, 80, 55, 8, 20);
  rect(mouseX/3+315, 87, 5, 15, 20);
  rect(mouseX/3+323, 95, 45, 8, 20);  
  
  fill(255, 255, 255);
  noStroke();
  rect(mouseX/2.5+130, 140, 55, 8, 20);
  rect(mouseX/2.5+145, 147, 5, 15, 20);
  rect(mouseX/2.5+153, 155, 45, 8, 20);  
  
  // Grass
  
  //Grass Highlights
  fill(111,184,100);  
  ellipseMode(CORNERS);
  ellipse(-40,237,160,277);
  ellipse(120,237,450,287);
  
  fill(105,176,94);  
  ellipse(-40,240,160,280);
  ellipse(120,240,450,290);
  
  //Underground
  rectMode(CORNERS);  
  fill(151, 106, 59);
  rect(0, 270, 400, 400);
  
  // Underground Shadow
  fill(0, 0, 0, 80);
  rect(0, 270, 400, 265);

  // Worm Hole Shadows stays behind worm
  fill(0,50);
  rect(63,310,65,330,60);
  fill(0,50);
  rect(145,310,143,330,60);
  
  // Worm
  fill(218, 132, 20);
  rect(mouseX/2-10,315,mouseX/2+50,325,20);
  fill(0, 0, 0,60);
  rect(mouseX/2-10,322,mouseX/2+50,324,20);
  fill(0,0,0,100);
  ellipse(mouseX/2+45,317,mouseX/2+47,319);
  
  
  // Worm Holes
  fill(151, 106, 59);
  rect(0,300,63,325);
  rect(145,300,400,325);
  fill(0,30);
  rect(60,308,63,332,40);
  fill(0,30);
  rect(145,308,148,332,40);
  
  // makes everything darker as mouse goes down
  
   fill(0,0,0,mouseY/5);
   rect(0,0,400,400);
    }