Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
////Lovely Cat Oven////
///by Colton David///
/*
Use your cat paw to manipulate the oven and get your fish waffle a'cooking.
All good things take time. Be patient.
 */

void setup() {
  //Set window size!!
  size(400, 400);
  //Better framerate
  frameRate(60);
  //byyye cursor
  noCursor();
}


void draw() { 
  background(119, 213, 213);
  // Set center mode!!
  ellipseMode(CENTER);
  rectMode(CENTER);

  //Wallpaper
  noStroke();
  rectMode(CORNER);
  fill(255);
  rect(0, 0, 2, 500);
  rect(4, 0, 2, 500);
  rect(8, 0, 2, 500);
  rect(12, 0, 2, 500);
  rect(16, 0, 2, 500);
  rect(20, 0, 2, 500);
  rect(24, 0, 2, 500);
  rect(28, 0, 2, 500);
  rect(32, 0, 2, 500);
  rect(36, 0, 2, 500);
  rect(40, 0, 2, 500);
  rect(44, 0, 2, 500);
  rect(48, 0, 2, 500);
  rect(52, 0, 2, 500);
  rect(56, 0, 2, 500);
  rect(60, 0, 2, 500);
  rect(64, 0, 2, 500);
  rect(68, 0, 2, 500);
  rect(72, 0, 2, 500);
  rect(76, 0, 2, 500);
  rect(80, 0, 2, 500);
  rect(84, 0, 2, 500);
  rect(88, 0, 2, 500);
  rect(92, 0, 2, 500);
  rect(96, 0, 2, 500);
  rect(100, 0, 2, 500);
  rect(104, 0, 2, 500);
  rect(108, 0, 2, 500);
  rect(112, 0, 2, 500);
  rect(116, 0, 2, 500);
  rect(120, 0, 2, 500);
  rect(124, 0, 2, 500);
  rect(128, 0, 2, 500);
  rect(132, 0, 2, 500);
  rect(136, 0, 2, 500);
  rect(140, 0, 2, 500);
  rect(144, 0, 2, 500);
  rect(148, 0, 2, 500);
  rect(152, 0, 2, 500);
  rect(156, 0, 2, 500);
  rect(160, 0, 2, 500);
  rect(164, 0, 2, 500);
  rect(168, 0, 2, 500);
  rect(172, 0, 2, 500);
  rect(176, 0, 2, 500);
  rect(180, 0, 2, 500);
  rect(184, 0, 2, 500);
  rect(188, 0, 2, 500);
  rect(192, 0, 2, 500);
  rect(196, 0, 2, 500);
  rect(200, 0, 2, 500);
  rect(204, 0, 2, 500);
  rect(208, 0, 2, 500);
  rect(212, 0, 2, 500);
  rect(216, 0, 2, 500);
  rect(220, 0, 2, 500);
  rect(224, 0, 2, 500);
  rect(228, 0, 2, 500);
  rect(232, 0, 2, 500);
  rect(236, 0, 2, 500);
  rect(240, 0, 2, 500);
  rect(244, 0, 2, 500);
  rect(248, 0, 2, 500);
  rect(252, 0, 2, 500);
  rect(256, 0, 2, 500);
  rect(260, 0, 2, 500);
  rect(264, 0, 2, 500);
  rect(268, 0, 2, 500);
  rect(272, 0, 2, 500);
  rect(276, 0, 2, 500);
  rect(280, 0, 2, 500);
  rect(284, 0, 2, 500);
  rect(288, 0, 2, 500);
  rect(292, 0, 2, 500);
  rect(296, 0, 2, 500);
  rect(300, 0, 2, 500);
  rect(304, 0, 2, 500);
  rect(308, 0, 2, 500);
  rect(312, 0, 2, 500);
  rect(316, 0, 2, 500);
  rect(320, 0, 2, 500);
  rect(324, 0, 2, 500);
  rect(328, 0, 2, 500);
  rect(332, 0, 2, 500);
  rect(336, 0, 2, 500);
  rect(340, 0, 2, 500);
  rect(344, 0, 2, 500);
  rect(348, 0, 2, 500);
  rect(352, 0, 2, 500);
  rect(356, 0, 2, 500);
  rect(360, 0, 2, 500);
  rect(364, 0, 2, 500);
  rect(368, 0, 2, 500);
  rect(372, 0, 2, 500);
  rect(376, 0, 2, 500);
  rect(380, 0, 2, 500);
  rect(384, 0, 2, 500);
  rect(388, 0, 2, 500);
  rect(392, 0, 2, 500);
  rect(396, 0, 2, 500);
  rect(400, 0, 2, 500);


  //Table
  fill (255, 195, 195); //Base
  stroke(185, 185, 90);
  strokeWeight(1.5);
  rect(0, 245, 400, 200);
  fill(255, 218, 110); //Counter
  rect(0, 225, 400, 100);

  //Cat Ears
  stroke(225, 125, 30);
  fill(255, 150, 49);

  //Top Left
  rectMode(CORNERS);
  strokeWeight(3);
  triangle(70, 60, 130, 60, 100, 20); //L Ear Exterior
  fill(255, 186, 186);
  stroke(225, 156, 156);
  strokeWeight(1);
  triangle(80, 60, 120, 60, 100, 32); //L Ear Interior
  //Top Right
  stroke(128, 160, 200);
  strokeWeight(3);
  fill(148, 180, 219);
  triangle(330, 60, 270, 60, 300, 20); //R Ear Exterior
  fill(255, 186, 186);
  strokeWeight(1);
  triangle(320, 60, 280, 60, 300, 32); //R Ear Interior

  //Oven EXT
  rectMode(CENTER);
  stroke(225, 127, 66);
  strokeWeight(3);
  fill(255, 157, 76);
  rect(200, 160, 300, 200, 10);


  //Cat Eyes

  //Top Left
  stroke(0);
  rectMode(CENTER);
  strokeWeight(1);
  fill(255, 240, 105);
  ellipse(140, 80, 28, 28);
  fill(0);
  ellipse(mouseX/50+137, mouseY/90+77.5, 2, 18); //Look at cursor
  //Top Right
  fill(255, 240, 105);
  ellipse(270, 80, 28, 28);
  fill(0);
  ellipse(mouseX/50+267, mouseY/90+77.5, 2, 18); //Look at cursor

  //Blush
  stroke(255);
  strokeWeight(0.2);
  fill(255, 186, 186);
  ellipse(105, 83, 15, 15);
  ellipse(305, 83, 15, 15);

  //Mouth
  stroke(0);
  strokeWeight(2);
  noFill();
  bezier(193, 85, 193, 90, 200, 90, 200, 85);
  bezier(200, 85, 200, 90, 207, 90, 207, 85);

  //Oven INT
  noStroke();
  fill(34);
  rect(200, 165, 250, 135, 10);

  //Taiyaki

  //Plate
  stroke(0);
  strokeWeight(1);
  fill(119, 213, 213);
  ellipse(190, 200, 180, 42);
  fill(255);
  ellipse(190, 200, 165, 35);


  //Body & Tail
  stroke(0);
  fill(253, 188, 85);
  ellipse(193, 136, 35, 15);
  ellipse(176, 204, 30, 15);
  ellipse(255, 162.5, 35, 25);
  ellipse(255, 185.5, 35, 25);
  ellipse(180, 170, 140, 70);
  strokeWeight(3);
  line(140, 152, 155, 167);
  line(155, 152, 140, 167);
  //Hide the tail stroke
  noStroke();
  ellipse(240, 171, 26, 32);
  //Scales
  stroke(0);
  strokeWeight(1.5);
  bezier(200, 150, 190, 150, 190, 160, 200, 160);
  bezier(200, 160, 190, 160, 190, 170, 200, 170);
  bezier(200, 170, 190, 170, 190, 180, 200, 180);
  bezier(220, 155, 210, 155, 210, 165, 220, 165);
  bezier(220, 165, 210, 165, 210, 175, 220, 175);

  //Oven Alpha
  stroke(255);
  strokeWeight(1);
  fill(mouseX/1.5, 0, 0, mouseX/2); //Fade to red on scroll
  rect(200, 165, 250, 135, 10);

  //Temperature Slider
  stroke(225, 127, 66);
  strokeWeight(2);
  fill(255, 193, 143);
  rect(200, 275, 200, 30, 0, 0, 10, 10);
  //Heat line
  fill(255);
  line(100, 275, 300, 275);
  //Slider Button
  rect(mouseX/2.25+108, 275, 5, 20, 20);

  //Oven Glass
  fill(255, 255, 255, 120);
  rect(200, 165, 250, 135, 10);

  //Oven Shine
  stroke(255, 120);
  strokeWeight(2);
  line(110, 120, 260, 213);
  line(170, 125, 280, 192);

  //Temperature Icons
  rectMode(CORNER);
  strokeWeight(2);
  //Cold
  stroke(50, 210, 210);
  fill(172, 237, 237);
  rect(100, 236, 45, 20, 6);
  //Med Cold
  stroke(105, 180, 180);
  fill(119, 213, 213);
  rect(150, 236, 45, 20, 6);
  //Med Hot
  stroke(215, 85, 85);
  fill(255, 107, 107);
  rect(200, 236, 45, 20, 6);
  //Hot
  stroke(200, 12, 12);
  fill(233, 37, 37);
  rect(250, 236, 45, 20, 6);

  //Paw
  rectMode(CORNER);
  stroke(190, 154, 72);
  strokeWeight(2);
  fill(255, 174, 92);
  rect(mouseX-18, mouseY, 35, 600); //Cat Arm
  fill(255, 174, 92);
  ellipse(mouseX, mouseY, 50, 40); //Paw
  noStroke();
  rect(mouseX-15, mouseY+15, 29, 9); //Stroke cover up
  //Stripes
  fill(255, 193, 143);
  rect(mouseX-13, mouseY-15, 5, 500);
  rect(mouseX-1, mouseY-18, 5, 500);
  rect(mouseX+10, mouseY-15, 5, 500);
  //Beans
  stroke(0);
  strokeWeight(0.5);
  fill(255, 143, 143);
  ellipse(mouseX, mouseY+5, 15, 10);
  ellipse(mouseX+10, mouseY-5, 10, 7);
  ellipse(mouseX-10, mouseY-5, 10, 7);
  ellipse(mouseX, mouseY-10, 10, 7);

  //Heat Squiggle
  noFill();
  strokeWeight(2);
  stroke(0, 0, 0, mouseX/1.8-20);
  bezier(175, 20, 165, 25, 165, 35, 180, 35);
  bezier(180, 35, 185, 35, 185, 45, 175, 50);
  stroke(0, 0, 0, mouseX/1.8-80);
  bezier(215, 20, 205, 25, 205, 35, 220, 35);
  bezier(220, 35, 225, 35, 225, 45, 215, 50);
}