/*
Fried Egg
Selina Muriel
Move your mouse up and down, and left and right to fry the egg and change the background colour!
Pull the pan down all the way to see the fire flicker.
*/
void setup() {
size(400, 400);
frameRate(60);
}
void draw() {
background((mouseY/6)+0, 153, (mouseY/4)+204);
//stovetop shadows
noStroke();
rectMode(CORNERS);
fill(0, 135);
rect(17, 17, 40, 120);
rect(17, 17, 120, 40);
rect(383, 17, 360, 120);
rect(383, 17, 280, 40);
rect(17, 383, 40, 280);
rect(17, 383, 120, 360);
rect(383, 380, 360, 280);
rect(383, 380, 280, 360);
//smaller stovetop shadows
rect(177, 43, 220, 103);
rect(177, 297, 220, 363);
rect(37, 183, 97, 223);
rect(303, 183, 363, 223);
//thinner square stovetop shadow
stroke(0, 135);
strokeWeight(10);
noFill();
rectMode(CENTER);
rect(200, 200, 265, 265);
//thinner square for stovetop
stroke(50);
strokeWeight(20);
noFill();
rectMode(CENTER);
rect(200, 200, 250, 250);
//large rect for stovetop
noStroke();
rectMode(CORNERS);
fill(50);
rect(20, 20, 40, 120);
rect(20, 20, 120, 40);
rect(380, 20, 280, 40);
rect(380, 20, 360, 120);
rect(20, 380, 40, 280);
rect(20, 380, 120, 360);
rect(380, 380, 360, 280);
rect(380, 380, 280, 360);
//smaller rectangles for stovetop
rect(180, 40, 220, 100);
rect(180, 300, 220, 360);
rect(40, 180, 100, 220);
rect(300, 180, 360, 220);
//transparent shadow of pan
noStroke();
ellipseMode(CENTER);
fill(0, 135);
ellipse((mouseX/16)+200, (mouseY/2)+200, 275, 275);
//transparent shadow of handle)
rect((mouseX/16)+185, (mouseY/2)+335, 215, 400);
//transparent shadow for stovetop circle
ellipse(200, 200, 160, 160);
//flames
fill(240, 77, 12, 200 - (frameCount%10)*4);
ellipse(182, 275, 25, 25);
ellipse(165, 265, 25, 25);
ellipse(150, 255, 25, 25);
ellipse(138, 240, 25, 25);
ellipse(130, 225, 25, 25);
ellipse(125, 208, 25, 25);
ellipse(125, 190, 25, 25);
ellipse(130, 175, 25, 25);
ellipse(135, 160, 25, 25);
ellipse(145, 175, 25, 25);
ellipse(150, 170, 25, 25);
ellipse(155, 165, 25, 25);
ellipse(145, 145, 25, 25);
ellipse(160, 135, 25, 25);
ellipse(175, 130, 25, 25);
ellipse(190, 125, 25, 25);
ellipse(205, 125, 25, 25);
ellipse(220, 130, 25, 25);
ellipse(235, 135, 25, 25);
ellipse(250, 143, 25, 25);
ellipse(260, 155, 25, 25);
ellipse(270, 170, 25, 25);
ellipse(274, 187, 25, 25);
ellipse(275, 203, 25, 25);
ellipse(272, 218, 25, 25);
ellipse(267, 235, 25, 25);
ellipse(260, 250, 25, 25);
ellipse(245, 260, 25, 25);
ellipse(230, 270, 25, 25);
//circles for stovetop
fill(50);
ellipse(200, 200, 150, 150);
fill(80);
ellipse(200, 200, 130, 130);
//rectangle 1 for handle
strokeWeight(2);
stroke(162, 160);
fill(50, 255);
rect((mouseX/16)+190, (mouseY/2)+325, (mouseX/16)+210, 400);
//rectangles for hand and palm
fill(225, 229, 191);
stroke(250, 195, 111);
rect((mouseX/16)+210, (mouseY/2)+360, (mouseX/16)+220, (mouseY/2)+410);
rect((mouseX/16)+185, (mouseY/2)+350, (mouseX/16)+205, (mouseY/2)+410);
rect((mouseX/16)+195, (mouseY/2)+360, (mouseX/16)+220, (mouseY/2)+372);
//lines for fingers
line((mouseX/16)+185, (mouseY/2)+365, (mouseX/16)+195, (mouseY/2)+365);
line((mouseX/16)+185, (mouseY/2)+380, (mouseX/16)+203, (mouseY/2)+380);
line((mouseX/16)+185, (mouseY/2)+395, (mouseX/16)+203, (mouseY/2)+395);
line((mouseX/16)+185, (mouseY/2)+410, (mouseX/16)+203, (mouseY/2)+410);
//circle for the outer dark grey lining of the pan
fill(50);
strokeWeight(2);
stroke(162, 160);
ellipse((mouseX/16)+200, (mouseY/2)+200, 260, 260);
// circle for the lighter grey of the pan!
noStroke();
fill(165);
ellipse((mouseX/16)+200, (mouseY/2)+200, 240, 240);
//circle for the bottom of the pan
fill(155);
ellipse((mouseX/16)+200, (mouseY/2)+200, 210, 210);
//circle 1 for the whites
fill(255, 255 - (mouseY/2));
ellipse((mouseX/15)+200, (mouseY/2.5)+210, 110, 120);
//circle 2 for the whites
fill(255, 255 - (mouseY/2));
ellipse((mouseX/15)+200, (mouseY/2.5)+210, 100, 100);
// circle for the yolk!
stroke(255, 199, 77);
strokeWeight(2);
fill(255, 255, 116);
ellipse((mouseX/15)+200, (mouseY/2.5)+220, 40, 40);
}