Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
// **********************************
// **********************************
// ***********Maya Sischo
// ***********Intro to Media Computation
// ***********2015/09/20
// ***********Interactive Drawing / Jetpack Man
// **********************************
// **********************************

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

void draw() {
  // ***draw a light blue background
   background(200,240,250);
   
  // ***makes a gradient with rect in background
  //light blue color
   fill(0,60,170,20);
   noStroke();
   
   //+mouseY/100 causes rect to move slightly in a vertical direction with mouse
   rect(0,140+mouseY/100,400,400);
   rect(0,240+mouseY/100,400,400);
   rect(0,300+mouseY/100,400,400);
   rect(0,340+mouseY/100,400,400);
   rect(0,360+mouseY/100,400,400);
   rect(0,380+mouseY/100,400,400);
   rect(0,400+mouseY/100,400,400);
   
   // ***makes a sun and some light
   //darker blue color
   //+mouseX/ and +mouseY/ cause ellipse to move slightly vert. and hor. with mouse
   fill(250,240,160);
   ellipse(240+mouseX/30,100+mouseY/30,120,120);
   
   fill(250,240,160,100);
   ellipse(240+mouseX/30,100+mouseY/30,160,160);
   
   fill(250,240,160,50);
   ellipse(240+mouseX/30,100,240+mouseY/30,240);
   
   // ***midground, makes midground clouds
   
   //fills white cloud color, including slight transparency (for first cloud)
   fill(255,100);
   noStroke();
   //ridiculous amount of rectangles to form cloud shapes
   //rect for first cloud
   rect(300+mouseX/15,95,40,100);
   rect(340+mouseX/15,115,20,65);
   rect(360+mouseX/15,120,15,65);
   rect(375+mouseX/15,120,5,60);
   rect(380+mouseX/15,135,15,45);
   rect(395+mouseX/15,135,5,40);
   rect(270+mouseX/15,100,30,75);
   rect(250+mouseX/15,115,20,65);
   rect(230+mouseX/15,130,20,60);
   rect(220+mouseX/15,135,10,50);
   rect(210+mouseX/15,135,10,45);
   rect(190+mouseX/15,140,20,40);
   rect(180+mouseX/15,145,10,30);
   rect(170+mouseX/15,150,10,20);
   rect(150+mouseX/15,150,20,10);
   rect(130+mouseX/15,150,20,5);
   
   //transparency for second cloud
   fill(255,100);
   //rect for second cloud, +mouseX makes it move slightly hor. with mouse
   rect(140+mouseX/20,30,20,5);
   rect(120+mouseX/20,25,20,15);
   rect(110+mouseX/20,20,10,20);
   rect(100+mouseX/20,25,10,15);
   rect(90+mouseX/20,15,10,25);
   rect(80+mouseX/20,0,10,40);
   rect(70+mouseX/20,0,10,45);
   rect(60+mouseX/20,0,10,40);
   rect(40+mouseX/20,0,20,45);
   rect(20+mouseX/20,0,20,50);
   rect(-20+mouseX/20,0,40,45);
   
   // ***foreground, makes man with jetpack and one cloud
   
   //man with jetpack
   //jetpack fire
   fill(255,0+mouseY/30,0,167);
   rect(55,205+mouseY/30,10,10); //left side fire
   rect(50,220+mouseY/30,5,5);
   rect(70,210+mouseY/30,10,10);
   rect(60,220+mouseY/30,5,5);
   rect(60,235+mouseY/30,5,5);
   
   rect(140,200+mouseY/30,10,10); //right side fire
   rect(130,210+mouseY/30,10,10);
   rect(130,225+mouseY/30,5,5);
   rect(125,230+mouseY/30,5,5);
   rect(140,220+mouseY/30,5,5);
   rect(120,205+mouseY/30,10,10);
   
   //jetpack
   fill(150,180,150); //sets fill for bottom of jetpack
   stroke(180,220+mouseY/80,180);
   ellipse(70,200+mouseY/80,40,20);
   ellipse(130,200+mouseY/80,40,20);
   noStroke();
   rect(50,140+mouseY/80,40,60);
   rect(110,140+mouseY/80,40,60);
   
   fill(180,210,180); //sets fill for top of jetpack
   stroke(180,220+mouseY/80,180);
   ellipse(70,140+mouseY/80,40,20);
   ellipse(130,140+mouseY/80,40,20);
   
   fill(200,230,200); //set fill for tiny square on jetpack
   noStroke();
   rect(55,160+mouseY/80,5,20);
   
   
   
   //man!
   //underlyin' body
   fill(180,150,90); //neck fill
   noStroke();
   rect(105,140,10,40); //neck
   
   //back of helmet that needs to be behind head
   fill(0,100,0);
   rect(120,100,20,40);
   
   fill(200,170,110); //head fill
   ellipse(110,130,55,57); //head
   
   fill(230,100,130); //torso fill
   quad(90,160,130,165,120,220,80,220); //torso
   
   fill(80,80,130); //pants fill
   quad(80,230,90,225,100,255,95,260); //top left leg
   quad(120,220,140,240,140,250,110,225); //top right leg
   quad(80,220,120,220,120,225,80,230); //groin I guess
   triangle(115,270,125,290,130,260); //right foot
   triangle(85,300,90,285,105,300); //left foot
   quad(95,250,100,255,95,300,85,300); //bottom left leg
   quad(140,240,145,245,120,280,115,270); //bottom right leg
   
   fill(30,150,40); //helmet
   rect(80,100,60,15);
   rect(80,110,15,30);
   
   //face
   //mouth
   fill(230);
   rect(103,142,20,7);
   fill(100);
   rect(108,142,5,7);
   //eyes
   stroke(70,50,10);
   strokeWeight(3);
   line(125,130,132,125);
   line(100,125,110,130);
   
   
   //foreground cloud
   fill(255,200);
   noStroke();
   
   rect(10+mouseX/30,315,20,5);
   rect(30+mouseX/30,310,30,10);
   rect(60+mouseX/30,310,10,15);
   rect(70+mouseX/30,300,10,25);
   rect(80+mouseX/30,295,20,35);
   rect(100+mouseX/30,290,10,50);
   rect(110+mouseX/30,280,10,65);
   rect(120+mouseX/30,270,30,70);
   rect(150+mouseX/30,260,10,90);
   rect(160+mouseX/30,260,20,80);
   rect(180+mouseX/30,260,10,70);
   rect(190+mouseX/30,280,10,45);
   rect(200+mouseX/30,270,10,60);
   rect(210+mouseX/30,280,10,30);
   rect(220+mouseX/30,280,20,40);
   rect(240+mouseX/30,270,40,40);
   rect(280+mouseX/30,285,10,25);
   rect(290+mouseX/30,300,20,10);
   rect(310+mouseX/30,295,10,5);
   
}
 
void mousePressed() {
   fill(255,255,0,167);
   rect(45,205,30,30); //left side fire
   rect(40,220,25,25);
   rect(60,210,30,30);
   rect(50,220,25,25);
   rect(50,235,25,25);
   
   rect(130,200,30,30); //right side fire
   rect(120,210,30,30);
   rect(120,225,25,25);
   rect(115,230,25,25);
   rect(130,220,25,25);
   rect(110,205,30,30);
}