// First Coding Assignment // Title: Under The Bed // How to Interact: Click the mouse to go from day time to night an dsee the creepy monsters under your bed // You can also move the sun by moving the mouse up and down // By: Dylan M. void setup() { size(400, 400); // I saw that in the examples other people used custom cursors so I wanted to try it out noCursor(); } void mousePressed() { //Frame rate brought down so you can see what actually happens when it is presed frameRate(2); // Back wall rectMode(CORNER); stroke(55, 30, 25); fill(60, 55, 50); rect(140, 60, 200, 220); //Left wall quad(0, 0, 140, 60, 140, 280, 0, 400); //Right wall quad(400, 0, 340, 60, 340, 280, 400, 400); //Ceiling stroke(150); fill(150); quad(0, 0, 400, 0, 340, 60, 140, 60); //Floor stroke(50); fill(50); quad(0, 400, 140, 280, 340, 280, 500, 500); //Left bed leg stroke(0); fill(30); rect(150, 360, 20, 30); triangle(170, 360, 170, 390, 180, 360); // Right bed leg rect(310, 360, 20, 30); triangle(310, 360, 300, 360, 310, 390); //Bed rest stroke(25, 15, 10); fill(25, 15, 10); rect(180, 170, 120, 70, 3); //Night stand quad(130, 240, 180, 240, 180, 260, 110, 260); rect(110, 260, 70, 20, 3); rect(110, 280, 70, 30, 3); fill(120); ellipse(140, 270, 10, 10); //top of bed stroke(90, 20, 10); fill(90, 20, 10); quad(180, 240, 150, 320, 330, 320, 300, 240); //Front of bed rect(150, 320, 180, 40, 4); //White bed sheet stroke(170); strokeWeight(3); fill(170); quad(180, 240, 173, 260, 307, 260, 300, 240); //Window strokeWeight(1); stroke(0, 14, 40); fill(0, 14, 40); quad(20, 80, 20, 240, 130, 200, 130, 100); //Window sill stroke(100); fill(100); quad(20, 240, 130, 200, 130, 213, 20, 260); //Moon stroke(200); fill(200); ellipse(100, 130+mouseY/8, 40, 40); stroke(0, 14, 40); // To make the Moon a crescent I took advantage of Processing's refresh system and put a darker ellipse over the Moon fill(0, 14, 40); ellipse(88, 130+mouseY/8, 40, 40); //Stars stroke(255); strokeWeight(5); fill(255); point(30, 160); point(30, 215); point(40, 110); point(50, 180); point(50, 130); point(60, 210); point(70, 150); point(80, 120); point(80, 185); point(120, 190); // Door strokeWeight(1); stroke(120); fill(120); quad(340, 150, 340, 280, 380, 333, 380, 140); // Doorknob stroke(20); fill(20); ellipse(370, 230, 10, 10); //Outlet stroke(140); fill(140); rect(320, 260, 10, 15); //Plug stroke(30); fill(30); ellipse(325.6, 266, 3.5, 3.5); ellipse(325.6, 272, 3.5, 3.5); // Light stroke(40); fill(40); triangle(200, 20, 280, 20, 240, 60); stroke(100); fill(100); ellipse(240, 55, 60, 60); // Eyes 1 stroke(120, 0, 0); fill(255, 0, 0); ellipse(190, 370, 13, 5); ellipse(203, 370, 13, 5); fill(0); ellipse(190, 370, 3, 3); ellipse(203, 370, 3, 3); //Darker eyes stroke(120, 0, 0); fill(155, 0, 0); ellipse(225, 365, 13, 5); ellipse(240, 365, 13, 5); fill(255); ellipse(225, 365, 3, 3); ellipse(240, 365, 3, 3); //Big white eyes with red pupils stroke(240, 0, 0); fill(250); ellipse(240, 380, 20, 10); ellipse(270, 380, 20, 10); fill(0); ellipse(240, 380, 3, 7); ellipse(270, 380, 3, 7); //Pure red eyes (no pupils) stroke(120, 0, 0); fill(255, 0, 0); ellipse(285, 367, 5, 10); ellipse(295, 367, 5, 10); fill(255); ellipse(225, 365, 3, 3); ellipse(240, 365, 3, 3); //Custom mouse stroke(0); fill(255); triangle(mouseX-5, mouseY-7, mouseX+5, mouseY+3, mouseX-4, mouseY+6); } void draw() { frameRate(60); // Back wall rectMode(CORNER); stroke(200, 170, 115); fill(255, 225, 170); rect(140, 60, 200, 220); //Left wall quad(0, 0, 140, 60, 140, 280, 0, 400); //Right wall quad(400, 0, 340, 60, 340, 280, 400, 360); //Ceiling stroke(230); fill(230); quad(0, 0, 400, 0, 340, 60, 140, 60); //Floor stroke(100, 45, 25); fill(100, 45, 25); quad(0, 400, 140, 280, 340, 280, 500, 500); //Left bed leg stroke(60); fill(80); rect(150, 360, 20, 30); triangle(170, 360, 170, 390, 180, 360); // right bed leg rect(310, 360, 20, 30); triangle(310, 360, 300, 360, 310, 390); //Bed rest stroke(75, 50, 40); fill(95, 65, 50); rect(180, 170, 120, 70, 3); //Night stand quad(130, 240, 180, 240, 180, 260, 110, 260); rect(110, 260, 70, 20, 3); rect(110, 280, 70, 30, 3); fill(180); ellipse(140, 270, 10, 10); //Top of bed stroke(185, 40, 45); fill(185, 40, 45); quad(180, 240, 150, 320, 330, 320, 300, 240); //Front of bed rect(150, 320, 180, 40, 4); //White bed sheet stroke(250); strokeWeight(3); fill(250); quad(180, 240, 173, 260, 307, 260, 300, 240); //Window strokeWeight(1); stroke(173, 213, 247); fill(173, 213, 247); quad(20, 80, 20, 240, 130, 200, 130, 100); //Window sill stroke(240); fill(240); quad(20, 240, 130, 200, 130, 213, 20, 260); //Sun stroke(240, 205, 0); fill(240, 205, 50); ellipse(50, 110+mouseY/4.5, 40, 40); // Door stroke(240); fill(240); quad(340, 150, 340, 280, 380, 333, 380, 140); // Doorknob stroke(100); fill(100); ellipse(370, 230, 10, 10); //Outlet stroke(250); fill(250); rect(320, 260, 10, 15); //Plug stroke(150); fill(150); ellipse(325.6, 266, 3.5, 3.5); ellipse(325.6, 272, 3.5, 3.5); // Light stroke(150); fill(150); triangle(200, 20, 280, 20, 240, 60); stroke(255); fill(255); ellipse(240, 55, 60, 60); //Custom mouse fill(0); triangle(mouseX-5, mouseY-7, mouseX+5, mouseY+3, mouseX-4, mouseY+6); }