// Interactive Drawing for Intro to Media Computation by Qeisan Kendy // This initializes program void setup() { size(400, 400); } // Repeats Loop void draw() { //normal background background(250); // Room Walls stroke(0); line(100, 0, 100, 240); line(100, 240, 400, 240); line(100, 240, 0, 360); //Apply Transparency fill(0, 255-0.5*mouseY); rect(0, 0, 400, 400); // Outside Light (Window) noStroke(); fill(190); rect(270, 90, 65, 100); fill(0, 255-0.9*mouseY); rect(270, 135, 65, 10); rect(295, 90, 10, 100); // Ghost // Back Hand fill(6, 6, 111, 250); arc(355+1.7*mouseX-400, 200+ 12*sin(0.1*mouseX), 40, 100, PI, TWO_PI, CHORD); triangle(355+1.7*mouseX-400, 200+ 12*sin(0.1*mouseX), 335+1.7*mouseX-400, 200+ 12*sin(0.1*mouseX), 345+1.7*mouseX-400, 220+ 12*sin(0.1*mouseX)); triangle(355+1.7*mouseX-400, 200+ 12*sin(0.1*mouseX), 375+1.7*mouseX-400, 200+ 12*sin(0.1*mouseX), 365+1.7*mouseX-400, 220+ 12*sin(0.1*mouseX)); // Tail fill(0, 0, 255, 230); triangle(220+1.7*mouseX-400, 50+ 12*sin(0.1*mouseX), 350+1.7*mouseX-400, 180+ 12*sin(0.1*mouseX), 220+1.7*mouseX-400, 170+ 12*sin(0.1*mouseX)); triangle(155+1.7*mouseX-400, 59+ 12*sin(0.1*mouseX), 350+1.7*mouseX-400, 180+ 12*sin(0.1*mouseX), 220+1.7*mouseX-400, 170+ 12*sin(0.1*mouseX)); triangle(155+1.7*mouseX-400, 100+ 12*sin(0.1*mouseX), 265+1.7*mouseX-400, 160+ 12*sin(0.1*mouseX), 200+1.7*mouseX-400, 170+ 12*sin(0.1*mouseX)); // Tail Inner Shade fill(10, 150); triangle(230+1.7*mouseX-400, 70+ 12*sin(0.1*mouseX), 360+1.7*mouseX-400, 180+ 12*sin(0.1*mouseX), 220+1.7*mouseX-400, 170+ 12*sin(0.1*mouseX)); triangle(180+1.7*mouseX-400, 85+ 12*sin(0.1*mouseX), 350+1.7*mouseX-400, 180+ 12*sin(0.1*mouseX), 220+1.7*mouseX-400, 170+ 12*sin(0.1*mouseX)); triangle(172+1.7*mouseX-400, 115+ 12*sin(0.1*mouseX), 265+1.7*mouseX-400, 160+ 12*sin(0.1*mouseX), 200+1.7*mouseX-400, 170+ 12*sin(0.1*mouseX)); noStroke(); fill(0, 0, 255); // Secondary Body fill(0, 0, 255); ellipse(240+1.7*mouseX-400, 175+ 12*sin(0.1*mouseX), 90, 80); // Secondary Body Inner Shade fill(10, 150); ellipse(240+1.7*mouseX-400, 175+ 12*sin(0.1*mouseX), 60, 50); // Main Body fill(0, 0, 255); ellipse(303+1.7*mouseX-400, 143+ 12*sin(0.1*mouseX), 130, 140); // Main Body Inner Shade fill(10, 150); ellipse(303+1.7*mouseX-400, 143+ 12*sin(0.1*mouseX), 100, 110); // Mouth noStroke(); fill(250, 0, 0, 190); arc(330+1.7*mouseX-400, 210+ 12*sin(0.1*mouseX), 40, 100, PI, TWO_PI, CHORD); // Front Hand fill(6, 6, 111, 250); noStroke(); arc(275+1.7*mouseX-400, 210+ 12*sin(0.1*mouseX), 40, 100, PI, TWO_PI, CHORD); triangle(275+1.7*mouseX-400, 210+ 12*sin(0.1*mouseX), 295+1.7*mouseX-400, 210+ 12*sin(0.1*mouseX), 284+1.7*mouseX-400, 230+ 12*sin(0.1*mouseX)); triangle(275+1.7*mouseX-400, 210+ 12*sin(0.1*mouseX), 255+1.7*mouseX-400, 210+ 12*sin(0.1*mouseX), 268+1.7*mouseX-400, 230+ 12*sin(0.1*mouseX)); // Eyes noStroke(); fill(254, 241, 1, 220); // Left Eye arc(290+1.7*mouseX-400, 120+ 12*sin(0.1*mouseX), 40, 90, 0, PI+QUARTER_PI, CHORD); // Right Eye arc(350+1.7*mouseX-400, 120+ 12*sin(0.1*mouseX), 40, 80, TWO_PI-QUARTER_PI, 3*PI, CHORD); // Bed // Mattress fill(10, 220); rect(90, 340, 400, 400); fill(200, mouseY); rect(90, 340, 310, 50); quad(150, 280, 90, 340, 400, 340, 400, 280); // Blanket fill(255, 128, 0, mouseY); rect(90, 340, 239, 40); quad(150, 280, 90, 340, 330, 340, 370, 280); // Child fill(170, 6, 34, mouseY); rectMode(CENTER); rect(185, 390, 40+0.1*mouseX, 90-0.1*mouseX); rectMode(CORNER); fill(239, 228, 176, mouseY); ellipse(180+0.1*mouseX, 330+0.15*mouseX, 60, 60); }