// _____ _____ __ _ _ _______ _ _____ _____ _ __
// | ___ \ / ___ \ | \ | | | | |__ __| | | / ___ \ / ___ \ | |_/ /
// | | | | | | | | | \| | |/ | | | | | | | | | | | | | _ <
// | |__| | | |___| | | |\ | | | | |____ | |___| | | |___| | | | \ \
// |_____/ \_____/ |_| \__| |_| |______| \_____/ \_____/ |_| \_\
// ____ _ _____ _____ ______ _______
// _____ __ / ___\ | | / ___ \ / ___/ | ____| |__ __|
// | |\ | | |__| |__ | | | | | | | | \___ \ | ___| | |
// | | \| | | | |__ | |____ | |____ | |___| | ___| | | |____ | |
// \____/ |______| \_____/ |____/ |______| |_|
//
// When it's dark, your mind makes you see things that aren't really there
//
// Move the mouse across the screen to open the closet door
// Click to turn on the lights
// Press any button to turn lights off again
//
// Stare into the darkness for long enough and they'll appear
void setup() {
size(400,400);
}
// Darkness Modifier
float dark = 64;
// Darkness Length
float darktime = 0;
void draw() {
noStroke();
float dx = mouseX/4+140;
float dy = -0.004*pow(dx-240,2)+140;
float dl = sqrt(pow(260-dx,2)+pow(100-dy,2));
float bx = -(mouseX/40+7)*((260-dx)/dl);
float by = -(mouseX/40+7)*((100-dy)/dl+1);
// Back Wall
background(78-dark,124-dark,201-dark);
// Floor
fill(140-dark,209-dark,147-dark);
rect(0,280,400,120);
// Closet Side Walls
fill(78-dark,124-dark,201-dark);
quad(130,100,160,115,160,280,135,320);
quad(270,100,240,115,240,280,265,320);
// Closet Darkness
fill(0,0,0,dark*4);
rect(140,100,120,220);
// Eyes
ellipseMode(CENTER);
fill(255,0,35,(((darktime)-128))*(dark/64));
ellipse(190,300,8,8); //1
ellipse(205,295,8,8);
fill(255,0,35,(((darktime)-256))*(dark/64));
ellipse(150,275,4,4); //2
ellipse(158,282,4,4);
fill(255,0,35,(((darktime)-384))*(dark/64));
ellipse(177,259,10,10); //3
ellipse(193,261,10,10);
fill(255,0,35,(((darktime)-512))*(dark/64));
ellipse(195,235,4,4); //4
ellipse(203,238,4,4);
fill(255,0,35,(((darktime)-640))*(dark/64));
ellipse(150,227,4,4); //5
ellipse(158,222,4,4);
fill(255,0,35,(((darktime)-768))*(dark/64));
ellipse(198,205,10,10); //6
ellipse(213,210,10,10);
fill(255,0,35,(((darktime)-896))*(dark/64));
ellipse(155,193,12,12); //7
ellipse(174,191,12,12);
fill(255,0,35,(((darktime)-1024))*(dark/64));
ellipse(199,174,6,6); //8
ellipse(210,169,6,6);
fill(255,0,35,(((darktime)-1152))*(dark/64));
ellipse(155,166,6,6); //9
ellipse(165,167,6,6);
fill(255,0,35,(((darktime)-1280))*(dark/64));
ellipse(170,135,18,18); //10
ellipse(200,135,18,18);
//Front Wall
fill(78-dark,124-dark,201-dark);
rect(0,0,400,95);
rect(0,95,135,225);
rect(265,95,135,225);
//Door Back
fill(255-dark,198-dark, 146-dark);
quad(dx+bx,dy+by,dx,dy,dx,dy+220,dx+bx,dy+220+by);
quad(dx+bx,dy+by,260+bx,100+by,260,100,dx,dy);
// Door Frame
fill(93-dark,174-dark,199-dark);
rect(130,80,140,10);
fill(113-dark,194-dark,209-dark);
rect(130,90,140,10);
rect(130,100,10,225);
rect(260,100,10,225);
// Door
fill(255-dark,228-dark,159-dark);
quad(dx,dy,260,100,260,320,dx,dy+220);
darktime = darktime+1;
}
void mousePressed() {
// Turn On Lights
dark = 0;
}
void keyPressed() {
//Turn Off Lights
dark = 64;
darktime = 0;
}