// **********************************
// **********************************
// ***********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);
}