void setup() { //setup the sketch size(400, 400); frameRate(60); //Set to CENTER mode ellipseMode(CENTER); rectMode(CENTER); } void draw() { //Resets frame rate after a mouse click or key press frameRate(60); //Draws the barn wall (background) background(80,30,0); strokeWeight(1); stroke(0); fill(60,20,0); rect(25, 200, 50, 400); fill(80,30,0); rect(75, 200, 50, 400); fill(60,20,0); rect(125, 200, 50, 400); fill(80,30,0); rect(175, 200, 50, 400); fill(60,20,0); rect(225, 200, 50, 400); fill(80,30,0); rect(275, 200, 50, 400); fill(60,20,0); rect(325, 200, 50, 400); fill(80,30,0); rect(375, 200, 50, 400); line(0, 260, 50, 260); line(50, 320, 100, 320); line(50, 100, 100, 100); line(100, 20, 150, 20); line(100, 230, 150, 230); line(150, 150, 200, 150); line(150, 370, 200, 370); line(200, 260, 250, 260); line(250, 320, 300, 320); line(250, 100, 300, 100); line(300, 20, 350, 20); line(300, 230, 350, 230); line(350, 150, 400, 150); line(350, 370, 400, 370); //Draws the spider Web noFill(); strokeWeight(2); stroke(255); ellipse(200, -120, 400, 400); ellipse(200, -120, 350, 350); ellipse(200, -120, 300, 300); ellipse(200, -120, 250, 250); line(0, 20, 200, -50); line(30, 60, 100, 25); line(100, 25, 200, -60); line(95, 95, 150, 50); line(150, 50, 200, -50); line(400, 30, 200, -50); line(360, 50, 300, 25); line(300, 25, 200, -50); line(340, 80, 250, 50); line(250, 50, 200, -50); line(200, -50, 175, 55); line(175, 55, 165, 125); line(200, -50, 225, 55); line(225, 55, 235, 125); //Draws the web attached to the spider line(200, mouseY, 200, mouseY - 400); //Draws the spider's shadow fill(0,0,0, 40); noStroke(); ellipse(230, mouseY+30, 110, 120); ellipse(230, mouseY+110, 60,60); //leg shadows strokeWeight(10); stroke(0,0,0, 25); line(270, mouseY-10, 310, mouseY-50); line(310, mouseY-50, 350, mouseY-20); line(280, mouseY+10, 330, mouseY); line(330, mouseY, 360, mouseY+20); line(280, mouseY+40, 350, mouseY+50); line(350, mouseY+50, 340, mouseY+100); line(270, mouseY+70, 310, mouseY+100); line(310, mouseY+100, 280, mouseY+140); line(210, mouseY-10, 150, mouseY-50); line(150, mouseY-50, 110, mouseY-20); line(180, mouseY+10, 130, mouseY); line(130, mouseY, 100, mouseY+20); line(180, mouseY+40, 110, mouseY+50); line(110, mouseY+50, 120, mouseY+100); line(190, mouseY+70, 150, mouseY+100); line(150, mouseY+100, 180, mouseY+140); //Web shadow strokeWeight(2); line(230, mouseY+30, 230, mouseY - 400); //Draws the abdomen fill(0); noStroke(); ellipse(200, mouseY, 110, 120); fill(125,0,0); triangle(200, mouseY+2, 170, mouseY-30, 230, mouseY-30); triangle(200, mouseY-2, 170, mouseY+30, 230, mouseY+30); //Head and main eyes fill(175,0,0); ellipse(182, mouseY+105, 8, 8); ellipse(218, mouseY+105, 8, 8); fill(0); ellipse(200, mouseY+80, 60,60); //Other eyes fill(175,0,0); ellipse(193, mouseY+103, 5,5); ellipse(207, mouseY+103, 5,5); ellipse(185, mouseY+90, 5,5); ellipse(195, mouseY+95, 5,5); ellipse(205, mouseY+95, 5,5); ellipse(215, mouseY+90, 5,5); //Draws the legs strokeWeight(10); stroke(0); line(240, mouseY-40, 280, mouseY-80); line(280, mouseY-80, 320, mouseY-50); line(250, mouseY-20, 300, mouseY-30); line(300, mouseY-30, 330, mouseY-10); line(250, mouseY+10, 320, mouseY+20); line(320, mouseY+20, 310, mouseY+70); line(240, mouseY+40, 280, mouseY+70); line(280, mouseY+70, 250, mouseY+110); line(180, mouseY-40, 120, mouseY-80); line(120, mouseY-80, 80, mouseY-50); line(150, mouseY-20, 100, mouseY-30); line(100, mouseY-30, 70, mouseY-10); line(150, mouseY+10, 80, mouseY+20); line(80, mouseY+20, 90, mouseY+70); line(160, mouseY+40, 120, mouseY+70); line(120, mouseY+70, 150, mouseY+110); //Draws the lighting noStroke(); fill(0,0,0, 30); rect(200,200,400,400); //darker overlay fill(255,255,230, 35); ellipse(20,-10, 400, 400); //light source } void mousePressed() { //Change the eye colour to yellow fill(250,250,0); ellipse(182, mouseY+105, 8, 8); ellipse(218, mouseY+105, 8, 8); fill(0); ellipse(200, mouseY+80, 60,60); fill(250,250,0); ellipse(193, mouseY+103, 5,5); ellipse(207, mouseY+103, 5,5); ellipse(185, mouseY+90, 5,5); ellipse(195, mouseY+95, 5,5); ellipse(205, mouseY+95, 5,5); ellipse(215, mouseY+90, 5,5); //Makes colour change last longer frameRate(15); } void keyPressed() { //Lights out! fill(0,0,0); rect(200,200,400,400); frameRate(1); //Head and main eyes fill(175,0,0); ellipse(182, mouseY+105, 8, 8); ellipse(218, mouseY+105, 8, 8); fill(0); ellipse(200, mouseY+80, 60,60); //Other eyes fill(175,0,0); ellipse(193, mouseY+103, 5,5); ellipse(207, mouseY+103, 5,5); ellipse(185, mouseY+90, 5,5); ellipse(195, mouseY+95, 5,5); ellipse(205, mouseY+95, 5,5); ellipse(215, mouseY+90, 5,5); }