//set window size
void setup(){
size(400, 400);}
void draw(){
//create the background
//set bg colour
background(0, 0, 50);
//draw the moon and have it follow the mouse
stroke(230);
fill(230);
ellipse (mouseX, mouseY, 80, 80);
stroke(230, 0);
fill(230, 50);
ellipse(mouseX, mouseY, 140, 140);
//draw the hill
stroke(0, 50, 50);
fill(0, 50, 50);
ellipse(400, 400, 450, 450);
//draw the ground
stroke(0, 70, 70);
fill (0, 70, 70);
rect(200, 360, 400, 80);
//draw the cast shadow and make it move
fill (0, 50, 50);
stroke(0, 50, 50);
ellipse(400 - mouseX, 380, 450, 50);
//Set shape modes
rectMode(CENTER);
ellipseMode(CENTER);
//draw the head
fill(255);
stroke(255);
ellipse(275, 120, 100, 100);
ellipse(300, 150, 60, 50);
//draw the ears
triangle(220, 22, 228, 130, 265, 75);
triangle(310, 15, 315, 90, 293, 93);
//draw the nose
fill (125);
stroke(125);
ellipse(315, 145, 30, 15);
//draw the eyes
fill(200, 200, 255);
stroke (170, 170, 255);
ellipse(280, 110, 15, 40);
ellipse(315, 110, 7, 40);
// draw the grayed out back legs
fill(125);
stroke(125);
//draw the front darker leg
quad(275, 225, 240, 230, 230, 260, 265, 255);
quad( 275, 355, 245, 360, 230, 260, 265, 255);
quad (275, 355, 245, 360, 260, 380, 300, 380);
quad(295, 360, 265, 360, 280, 380, 308, 380);
//draw the back darker leg
quad (190, 230, 153, 241, 180, 300 ,219, 277);
quad(219, 277,190, 270, 158, 320, 180, 350);
quad (158, 320, 188, 310, 230, 380 ,200, 380);
//draw the body
fill (255);
stroke(255);
//draw the neck and body
quad(228, 130, 290, 170, 260, 240, 211, 183);
ellipse(228, 220, 90, 90);
quad(211, 183, 231, 265, 140, 250, 150, 193);
ellipse(155, 223, 60, 60);
//draw the frontal legs
//draw the front leg
quad( 229, 229, 187, 233, 180, 258, 218, 256);
quad(180, 258, 218, 256, 218, 350 ,180, 350);
quad (218, 350 ,180, 350, 201, 380, 236, 380);
quad(200, 360, 232, 360, 241, 380, 200, 380);
//draw the back leg
quad (125, 220, 180, 240, 145, 295, 103, 282);
quad (145, 295, 103, 282, 80, 320, 115, 325);
quad(80, 320, 115, 325, 110, 360 ,80, 360);
quad(80, 360, 120, 360, 130, 380, 100, 380);
//draw the tail
triangle(130, 205, 155, 255, 60, 280);
//draw the little paw lines and mouth lines
fill(125);
stroke(125);
strokeWeight(3);
//draw the mouth
line (305, 167, 317, 159);
line (317, 159, 325, 163);
//draw the front paw lines
line( 210, 368, 219, 380);
line( 225, 368, 234, 380);
line( 232, 368, 241, 380);
//draw the back paw lines
line( 100, 368, 109, 380);
line( 115, 368, 124, 380);
line( 122, 368, 131, 380);
}
//when the mouse is dragged, make the screen change and look spooky
void mouseDragged(){
//make the eyes red
fill(255, 0, 0);
stroke (255, 0, 0);
ellipse(280, 110, 15, 40);
ellipse(315, 110, 7, 40);
//make the eyes glow
fill(255, 0, 0, 25);
stroke(255, 0, 0, 0);
ellipse(280, 110, 40, 60);
ellipse(315, 110, 25, 60);
//expand the mouth
fill(125);
stroke(125);
strokeWeight(3);
line (305, 167, 282, 144);
line (282, 144, 269, 157);
line (269, 157, 249, 120);
//have a rectangle appear and faze the screen with an opacity layer, first in red, then in black
fill(120, 0, 0, 50);
stroke(0, 50);
rectMode(CORNER);
rect(0, 0, 400, 400);
fill(0, 50);
stroke(0, 50);
rectMode(CORNER);
rect(0, 0, 400, 400);
}