Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/*
THE CAVE
As the user moves their mouse around the screen the torch follows it, lighting up the
area around it. On the one side of the screen there is chest filled with gold waiting to be
discovered. As the mouse moves the tip of the flame follows slowy.
As the mouse moves lower on the screen the eyes in the background begin to 
light up
HARRISON KERR 991438373
*/


void setup() {
  size(400, 400);
  // noCursor();
  frameRate(30);
}

void draw() {
 
  background(31, 15, 20); 
  stroke(1);
  strokeWeight(0.5);

  //lower bg
  rectMode(CORNERS);
  fill(67, 67, 67);
  rect(0, 210, 400, 400);

  //inside treasure chest
  fill(250, 191, 20);

  //treasure chest

  fill(0);
  rect(275, 178, 400, 230);
  fill(39, 27, 8);
  quad(330, 190, 280, 174, 400, 155, 450, 170);
  arc(300, 210, 80, 80, radians(150), radians(330));
  quad(260, 280, 260, 220, 330, 230, 330, 290);
  quad(330, 230, 330, 290, 400, 275, 400, 215);
  fill(175, 175, 175);
  quad(370, 170, 375, 185, 385, 180, 380, 165);
  fill(15, 12, 1);
  strokeWeight(2);
  line(260, 240, 330, 250);
  line(260, 260, 330, 270);
  line(330, 250, 400, 235);
  line(330, 270, 400, 255);

  //coins on outside of chest
  fill(250, 191, 20);
  noStroke();
  ellipseMode(CENTER);
  ellipse(260, 280, 15, 15);
  ellipse(270, 280, 15, 15);
  ellipse(270, 285, 15, 15);
  ellipse(260, 280, 15, 15);
  ellipse(280, 285, 15, 15);
  ellipse(290, 290, 15, 15);
  ellipse(300, 292, 15, 15);
  ellipse(270, 285, 15, 15);

  quad(283, 223, 330, 229, 400, 214, 361, 210);


  //torch
  fill(250, 212, 154);
  quad(mouseX-10, mouseY+70, mouseX+10, mouseY+70, mouseX+30, mouseY+90, mouseX+5, mouseY+90);
  fill(137, 107, 58);
  quad(mouseX-30, mouseY-10, mouseX+20, mouseY-5, mouseX+10, mouseY+30, mouseX-35, mouseY+30);
  quad(mouseX, mouseY+50, mouseX-30, mouseY+50, mouseX-35, mouseY+30, mouseX+10, mouseY+30);
  quad(mouseX-30, mouseY+50, mouseX, mouseY+50, mouseX-30, mouseY+170, mouseX-55, mouseY+170);

  //hand
  fill(250, 212, 154);

  quad(mouseX+5, mouseY+90, mouseX+30, mouseY+90, mouseX+20, mouseY+130, mouseX-20, mouseY+130);
  quad(mouseX+5, mouseY+90, mouseX-20, mouseY+100, mouseX-30, mouseY+110, mouseX-20, mouseY+130);
  quad(mouseX-20, mouseY+100, mouseX-30, mouseY+110, mouseX-50, mouseY+100, mouseX-40, mouseY+90);
  quad(mouseX-20, mouseY+130, mouseX+20, mouseY+130, mouseX+50, 400, mouseX, 400);

  //fire on torch
  fill(255, 165, 18, 100);
  quad(mouseX-35, mouseY+30, mouseX+10, mouseY+30, mouseX+30, mouseY, mouseX-40, mouseY-10);
  quad(mouseX-40, mouseY-10, mouseX+30, mouseY, mouseX+25, mouseY-30, mouseX-10, mouseY-50);
  quad(mouseX+25, mouseY-30, mouseX-10, mouseY-50, pmouseX+5, pmouseY-70, mouseX+20, mouseY-50);

  //light/shadows
  fill(255, 240, 103, 20);

  triangle(mouseX-110, mouseY-10, mouseX-110, mouseY-80, mouseX-40, mouseY-100);
  triangle(mouseX-110, mouseY-80, mouseX-40, mouseY-100, mouseX, mouseY-140);
  triangle(mouseX-40, mouseY-100, mouseX, mouseY-140, mouseX +40, mouseY-100);
  triangle(mouseX, mouseY-140, mouseX + 40, mouseY - 100, mouseX + 90, mouseY - 60);
  triangle(mouseX+40, mouseY-100, mouseX +90, mouseY-60, mouseX+50, mouseY+20);
  triangle(mouseX+90, mouseY-60, mouseX+50, mouseY+20, mouseX+60, mouseY+70);
  triangle(mouseX+50, mouseY+20, mouseX+60, mouseY+70, mouseX+40, mouseY+110);
  triangle(mouseX+60, mouseY+70, mouseX+40, mouseY+110, mouseX - 50, mouseY+130);
  triangle(mouseX - 50, mouseY+130, mouseX-110, mouseY+100, mouseX-110, mouseY-10);
  triangle(mouseX+40, mouseY+110, mouseX, mouseY+160, mouseX-50, mouseY+130);

  //middle light/shadows
  fill(52, 51, 36, 225);
  quad(mouseX, mouseY-140, mouseX+110, mouseY-160, mouseX+210, mouseY+10, mouseX+90, mouseY-60);
  quad(mouseX+90, mouseY-60, mouseX+210, mouseY+10, mouseX+110, mouseY+180, mouseX+60, mouseY+70);
  quad(mouseX+60, mouseY+70, mouseX+110, mouseY+180, mouseX-100, mouseY+170, mouseX, mouseY+160);
  quad(mouseX-100, mouseY+170, mouseX, mouseY+160, mouseX-110, mouseY+100, mouseX-180, mouseY+20);
  quad(mouseX-110, mouseY+100, mouseX-180, mouseY+20, mouseX-90, mouseY-170, mouseX-110, mouseY-80);
  quad(mouseX-90, mouseY-170, mouseX-110, mouseY-80, mouseX, mouseY-140, mouseX+110, mouseY-160);

  //darkest shadows
  fill(15, 15, 9, 240);
  quad(0, 170, mouseX-180, mouseY+20, mouseX-90, mouseY-170, 0, 0);
  quad(mouseX-90, mouseY-170, 0, 0, 400, 0, mouseX+110, mouseY-160);
  quad(400, 0, mouseX+110, mouseY-160, mouseX+210, mouseY+10, 400, 400);
  quad(mouseX+210, mouseY+10, 400, 400, 0, 400, mouseX+110, mouseY+170);
  triangle(0, 400, mouseX+110, mouseY+170, mouseX-100, mouseY+170);
  quad(mouseX-100, mouseY+170, 0, 400, 0, 170, mouseX-180, mouseY+20);

  //red eyes
  fill(183, 38, 2, mouseY);
  ellipseMode(CENTER);
  ellipse(340, 70, 5, 10);
  ellipse(330, 70, 5, 10);
  ellipse(220, 60, 5, 10);
  ellipse(210, 60, 5, 10);
  ellipse(150, 100, 5, 10);
  ellipse(140, 100, 5, 10);
  ellipse(100, 30, 5, 10);
  ellipse(90, 30, 5, 10);
  ellipse(50, 20, 5, 10);
  ellipse(40, 20, 5, 10);
}