/* Dedicated to the thousands of teas I've drank in my lifetime... and the 6 I drank while coding this sketch. May you RIP. "Tea Time" MADE BY: Jensen Verlaan It's TEA TiME, so take a seat and JOIN IN! Participate by doing the following: -> Open youtube.com and search "Tea Time Music." Play it to become fully immersed in the wonders of Tea Time. -> Move the mouse up and down to lower and raise your tea bag into and out of your mug. -> STEEP YOUR TEA! The closer your tea bag is to your mug, the more steeped the tea within will become. -> When the mouse is clicked, the game title, "TEA TiME," is printed on the bottom left hand side of the sketch. -> When the 'ENTER' key is pressed, the colour of various static objects are swapped. TEA TiME comes in many colours! */ void setup() { // Set sketch size to 400 x 400 pixels size(400, 400); // Remove the cursor noCursor(); } void draw() { // Set the kitchen wall colour to a soft blue background(172, 195, 232); // Adjust the frame rate to 60FPS frameRate(60); // Remove stroke for that soft, line-less asthetic noStroke(); // Make the BACKGROUND. // /* SHELVES */ // Shadowed shelves fill(133, 97, 64); rect(0, -5, 120, 125, 7); rect(360, -5, 40, 125, 7); // Under shelf rectangle fill(171, 125, 83); rect(110, 0, 260, 70, 7); // Shelving front fill(255, 187, 124); rect(-5, -5, 105, 125, 7); rect(380, -5, 410, 125, 7); rect(100, -5, 280, 65, 7); // Shelf doors fill(227, 166, 110); rect(-5, -5, 95, 115, 7); rect(390, -5, 20, 115, 7); rect(110, -5, 120, 55, 7); rect(250, -5, 120, 55, 7); // Shelf handles // Set ellipse mode to CENTER ellipseMode(CENTER); fill(68, 77, 92); ellipse(70, 20, 10, 10); ellipse(210, 20, 10, 10); ellipse(270, 20, 10, 10); /* DISTANT COUNTER TOP */ // Counter Tops fill(173, 127, 84); rect(170, 200, 245, 70, 7); rect(-5, 200, 40, 70, 7); fill(68, 77, 92); rect(170, 160, 245, 65, 7); rect(-5, 160, 40, 65, 7); fill(115, 131, 156); rect(170, 160, 245, 60, 7); rect(-5, 160, 40, 60, 7); // Cutting Board fill(148, 167, 199); rect(200, 165, 90, 40, 7); //Counter Drawers fill(156, 114, 76); rect(180, 230, 80, 20, 7); rect(270, 230, 80, 20, 7); rect(360, 230, 80, 20, 7); rect(-5, 230, 30, 20, 7); // Drawer Handles fill(68, 77, 92); ellipse(220, 240, 10, 10); ellipse(310, 240, 10, 10); ellipse(400, 240, 10, 10); /* OVEN */ // Body fill(210, 222, 255); rect(35, 200, 135, 70, 7); fill(239, 255, 255); rect(35, 160, 135, 60, 7); // Oven Burners fill(68, 77, 92); // Set ellipse mode to CORNER ellipseMode(CORNER); ellipse(110, 170, 40, 10); ellipse(109, 190, 42, 12); ellipse(50, 170, 40, 10); ellipse(49, 190, 42, 12); // Oven Handle fill(68, 77, 92); rect(45, 230, 115, 10, 7); // Oven Glass fill(115, 131, 156); rect(55, 250, 100, 40, 7); // Dish Rags fill(161, 178, 100); rect(55, 225, 20, 40, 7); fill(102, 185, 204); rect(85, 225, 20, 40, 7); // Make ITEMS. // /* JARS */ // Glass Body fill(239, 255, 255, 230); rect(370, 140, 20, 30, 7); rect(390, 140, 20, 30, 7); rect(380, 170, 20, 20, 7); // Filling fill(255, 113, 138, 150); rect(380, 180, 20, 10, 7); rect(370, 150, 20, 20, 7); // Lids fill(68, 77, 92); rect(370, 130, 20, 10, 7); rect(390, 140, 20, 10, 7); rect(380, 160, 20, 10, 7); /* KETTLE */ // Body // Set ellipse mode to CENTER ellipseMode(CENTER); fill(209, 92, 113); ellipse(130, 157, 40, 40); // Spout quad(130, 157, 110, 157, 80, 137, 90, 137); fill(133, 59, 72); ellipse(85, 137, 10, 5); // Handle noFill(); stroke(209, 92, 113); strokeWeight(5); ellipse(150, 157, 20, 20); // Lid noStroke(); fill(250, 110, 135); ellipse(130, 147, 40, 20); fill(133, 59, 72); ellipse(130, 137, 10, 10); /* KNIFE RACK */ // Rack fill(227, 166, 110); rect(200, 100, 90, 10, 7); // Knife Blades fill(239, 255, 255); triangle(220, 80, 210, 120, 220, 120); triangle(230, 90, 230, 120, 240, 120); triangle(270, 90, 270, 120, 280, 120); rect(250, 80, 10, 40, 7, 0, 0, 0); // Knife Handles fill(68, 77, 92); rect(215, 120, 5, 20, 7); rect(235, 120, 5, 10, 7); rect(250, 120, 10, 20, 7); rect(275, 120, 5, 5, 7); // Knife Handle Screws fill(200); ellipse(255, 125, 3, 3); ellipse(255, 135, 3, 3); // Make the MIDGROUND. // // Counter Top Gradients fill(255, 187, 124); rect(0, 260, width, 10); fill(242, 178, 118); rect(0, 270, width, 10); fill(235, 172, 114); rect(0, 280, width, 10); fill(219, 161, 107); rect(0, 290, width, 10); fill(204, 150, 99); rect(0, 300, width, 15); fill(186, 137, 91); rect(0, 315, width, 20); // Make the BACK LAYER OF MUG (that will be behind the tea bag when it is lowered into the mug). // // Body fill(191, 212, 119); rect(220, 190, 120, 150); ellipse(280, 340, 120, 40); fill(131, 145, 81); ellipse(280, 190, 120, 40); // Handle fill(191, 212, 119); rect(330, 230, 50, 20, 7); rect(360, 230, 20, 90, 7); rect(330, 300, 50, 20, 7); // Handle Highlights fill(224, 247, 139); rect(330, 230, 50, 10, 7); rect(330, 300, 30, 10, 7); // Tea // transparency is set to change with the mouse's vertical location so the tea appears darker when the teabag is closer and lighter when it is farther away fill(92, 48, 6, mouseY); ellipse(280, 195, 100, 30); // Lip of Mug noFill(); stroke(205, 227, 127); strokeWeight(7); ellipse(280, 190, 120, 40); // Make MOVING STEAM. // /* Semi-transparent ellipses use the frame count to change size as time passes, giving illusion of steam rising */ // Mug Steam noStroke(); fill(255, 50); ellipse(290, 135, 100 + ((float) Math.sin(frameCount * 0.05) * 12), 100 + ((float) Math.sin(frameCount * 0.05) * 12)); ellipse(250, 100, 80 + ((float) Math.sin(frameCount * 0.05) * 12), 80 + ((float) Math.sin(frameCount * 0.05) * 12)); ellipse(265, 50, 50 + ((float) Math.sin(frameCount * 0.05) * 12), 50 + ((float) Math.sin(frameCount * 0.05) * 12)); ellipse(250, 170, 40 + ((float) Math.sin(frameCount * 0.05) * 12), 40 + ((float) Math.sin(frameCount * 0.05) * 12)); ellipse(300, 125, 30 + ((float) Math.sin(frameCount * 0.05) * 12), 30 + ((float) Math.sin(frameCount * 0.05) * 12)); ellipse(295, 0, 25 + ((float) Math.sin(frameCount * 0.05) * 12), 25 + ((float) Math.sin(frameCount * 0.05) * 12)); // Kettle Steam fill(255, 45); ellipse(80, 125, 10 + ((float) Math.sin(frameCount * 0.03) * 12), 10 + ((float) Math.sin(frameCount * 0.03) * 12)); // Make the TEA BAG. // /* Tea Bag will move up and down the y-axis following the vertical movement of the mouse */ // Fabric Body noStroke(); fill(255, 175); rect(255, mouseY, 50, 50, 7); rect(270, mouseY - 5, 20, 10, 7); // Tea Leaves fill(133, 102, 70); rect(260, mouseY + 25, 40, 20, 7); // String stroke(255, 113, 138); strokeWeight(3); line(280, 0, 280, mouseY); // Make the FRONT LAYER OF MUG (that will be in front of the tea bag when it is lowered into mug). // // Counter Top noStroke(); fill(173, 127, 84); rect(0, 335, width, 20); fill(163, 120, 79); rect(0, 355, width, 20); fill(145, 107, 71); rect(0, 375, width, 25); // Mug Shadow fill(68, 77, 92, 100); ellipse(300, 365, 180, 100); // Body fill(191, 212, 119); rect(220, 212, 120, 130); ellipse(280, 340, 120, 40); // Lip of Mug stroke(224, 247, 139); strokeWeight(7); noFill(); arc(280, 190, 120, 40, 0, PI); } void mousePressed() { // Adjust frame rate so image appears for a longer period of time once mouse is clicked frameRate(1); // Remove lines for asthetic purposes noStroke(); /* Make the words "TEA TiME" appear on screen in bottom left corner of sketch when mouse is pressed */ // Ellipse Behind Letters fill(254, 158, 157, 175); ellipse(110, 330, 200, 120); // T fill(189, 234, 242); rect(40, 280, 40, 10, 7); rect(55, 280, 10, 40, 7); // E rect(90, 280, 30, 10, 7); rect(90, 280, 10, 40, 7); rect(90, 295, 20, 10, 7); rect(90, 310, 30, 10, 7); // A rect(130, 300, 10, 20, 7); rect(140, 280, 20, 30, 7); rect(130, 300, 40, 10, 7); rect(160, 300, 10, 20, 7); // Include hole in 'A' that matches the background colour fill(219, 161, 107); rect(145, 290, 10, 10, 7); // T fill(189, 234, 242); rect(30, 340, 40, 10, 7); rect(45, 340, 10, 40, 7); // I // Use two lines to make the dot of 'i' look like a heart stroke(189, 234, 242); strokeWeight(9); line(80, 340, 85, 350); line(90, 340, 85, 350); noStroke(); rect(80, 360, 10, 20, 7); // M rect(105, 340, 10, 40, 7); rect(105, 340, 20, 10, 7); rect(120, 340, 10, 20, 7); rect(125, 340, 20, 10, 7); rect(135, 340, 10, 40, 7); // E rect(160, 340, 30, 10, 7); rect(160, 340, 10, 40, 7); rect(160, 370, 30, 10, 7); rect(160, 355, 20, 10, 7); } void keyPressed() { // Adjust frame rate so image appears for a longer period of time once mouse is clicked frameRate(1); // Remove lines for asthetic purposes noStroke(); /* When the 'ENTER' key is pressed, many static sketch components will swap colours. Many sketch components that do not change colour must be included in the keyPressed block of code as well to ensure that forms do not overlap one another when key is pressed. Moving forward, all affected 'fill' have been altered and swapped from what they were in their draw() counterparts */ // DISH RAGS // // Dish Rags fill(189, 83, 102); rect(55, 225, 20, 40, 7); fill(233, 242, 162); rect(85, 225, 20, 40, 7); // COUNTERTOP // fill(255, 187, 124); rect(0, 260, width, 10); // MUG BEHIND TEA BAG // // Body fill(209, 92, 113); rect(220, 190, 120, 150); ellipse(280, 340, 120, 40); fill(171, 58, 58); ellipse(280, 190, 120, 40); // Handle fill(209, 92, 113); rect(330, 230, 50, 20, 7); rect(360, 230, 20, 90, 7); rect(330, 300, 50, 20, 7); // Handle Highlights fill(250, 110, 135); rect(330, 230, 50, 10, 7); rect(330, 300, 30, 10, 7); // Tea fill(92, 48, 6, mouseY); ellipse(280, 195, 100, 30); // Lip of Mug noFill(); stroke(250, 110, 135); strokeWeight(7); ellipse(280, 190, 120, 40); /* STEAM */ // Mug Steam noStroke(); fill(255, 50); ellipse(290, 135, 100, 100); ellipse(250, 100, 80, 80); ellipse(265, 50, 50, 50); ellipse(250, 170, 40, 40); ellipse(300, 125, 30, 30); ellipse(295, 0, 25, 25); // Kettle Steam fill(255, 35); ellipse(85, 130, 10, 10); /* TEA BAG */ // Fabric Body noStroke(); fill(255, 175); rect(255, mouseY, 50, 50, 7); rect(270, mouseY - 5, 20, 10, 7); // Tea Leaves fill(133, 102, 70); rect(260, mouseY + 25, 40, 20, 7); // String stroke(191, 212, 119); strokeWeight(3); line(280, 0, 280, mouseY); /* MUG IN FRONT OF TEA BAG */ // Counter Top noStroke(); fill(173, 127, 84); rect(0, 335, width, 20); fill(163, 120, 79); rect(0, 355, width, 20); fill(145, 107, 71); rect(0, 375, width, 25); // Mug Shadow fill(68, 77, 92, 100); ellipse(300, 365, 180, 100); // Body noStroke(); fill(209, 92, 113); rect(220, 212, 120, 130); ellipse(280, 340, 120, 40); // Lip of Mug stroke(250, 110, 135); strokeWeight(7); noFill(); arc(280, 190, 120, 40, 0, PI); /* KETTLE */ // Body noStroke(); ellipseMode(CENTER); fill(191, 212, 119); ellipse(130, 157, 40, 40); // Spout quad(130, 157, 110, 157, 80, 137, 90, 137); fill(133, 59, 72); ellipse(85, 137, 10, 5); // Handle noFill(); stroke(191, 212, 119); strokeWeight(5); ellipse(150, 157, 20, 20); // Lid noStroke(); fill(224, 247, 139); ellipse(130, 147, 40, 20); fill(133, 59, 72); ellipse(130, 137, 10, 10); /* JARS */ // Filling fill(205, 227, 127, 150); rect(380, 180, 20, 10, 7); rect(370, 150, 20, 20, 7); // Lids fill(68, 77, 92); rect(370, 130, 20, 10, 7); rect(390, 140, 20, 10, 7); rect(380, 160, 20, 10, 7); }