/*
Jacob Dinis
"Phantom cats"
Two pixel ghost cats float on the screen, fading in and out. Mouse x changes the colour of the background, mouse y changes the ghost's vertical position. Clicking causes the background to go red and the cat's faces to change.
The roof and ceiling are transparent to change with the background.
September 13 2016
*/
void setup() {
//set up canvas size
size(400, 400);
//set up rectangle and ellipse modes
//set framerate to provide best movement
noStroke();
}
void draw() {
//set frame rate
frameRate(60);
//set background to blue, changes to green when mouse is pushed right with x value.
background(0, 153+mouseX, 204-mouseX);
//Draw a floor and ceiling for style points
fill(0, 175);
rect(0, 300, 400, 200, 10);
rect(0, -100, 400, 200, 10);
///Left ghost (cat)
//set fill to black, fading to transparent.
fill(0, 255 - ((float) Math.sin(frameCount * 0.05) * 255));
rect (50, mouseY+50+((float) Math.sin(frameCount * 0.05) * 10), 5, 200);
rect (55, mouseY+55+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (60, mouseY+60+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65, mouseY+65+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (70, mouseY+70+((float) Math.sin(frameCount * 0.05) * 10), 85, 5);
rect (155, mouseY+65+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160, mouseY+60+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (165, mouseY+55+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (170, mouseY+50+((float) Math.sin(frameCount * 0.05) * 10), 5, 200);
//down fringes
rect (50, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (60, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (70, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (90, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (100, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (110, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (120, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (130, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (150, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (170, mouseY+250+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//Up fringes
rect (55, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (75, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (85, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (95, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (105, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (115, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (125, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (135, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (145, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (165, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//white fill with fade for inner parts
fill(255, 255 - ((float) Math.sin(frameCount * 0.05) * 255));
//Left ear
rect (55, mouseY+60+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (55, mouseY+65+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (55, mouseY+70+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (60, mouseY+65+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (60, mouseY+70+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65, mouseY+70+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//Right ear
rect (165, mouseY+60+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (165, mouseY+65+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (165, mouseY+70+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160, mouseY+65+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160, mouseY+70+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155, mouseY+70+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//Main body rectangle
rect (55, mouseY+75+((float) Math.sin(frameCount * 0.05) * 10), 115, 170);
//Colour those fringes
rect (60, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (70, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (90, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (100, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (110, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (120, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (130, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (150, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160, mouseY+245+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//left eye
fill(0, 255 - ((float) Math.sin(frameCount * 0.05) * 255));
rect (70, mouseY+120+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (75, mouseY+120+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80, mouseY+125+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65, mouseY+125+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65, mouseY+130+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65, mouseY+135+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65, mouseY+140+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80, mouseY+130+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80, mouseY+135+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80, mouseY+140+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (70, mouseY+145+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (75, mouseY+145+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//right eye
rect (145, mouseY+120+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (150, mouseY+120+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155, mouseY+125+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140, mouseY+125+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140, mouseY+130+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140, mouseY+135+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140, mouseY+140+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155, mouseY+130+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155, mouseY+135+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155, mouseY+140+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (145, mouseY+145+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (150, mouseY+145+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
// Nose
rect (110, mouseY+150+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (110, mouseY+155+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (110, mouseY+160+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (115, mouseY+150+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (105, mouseY+150+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (115, mouseY+165+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (105, mouseY+165+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (100, mouseY+160+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (120, mouseY+160+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
///Obviously all of these parts are effected by the sin code in their y value, causing them to float. This goes for all of the ghost parts.
//Right ghost
//set fill to black, fading to transparent.
fill(0, 0 +((float) Math.sin(frameCount * 0.05) * 255));
rect (50+175, 50-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 200);
rect (55+175, 55-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (60+175, 60-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65+175, 65-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (70+175, 70-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 85, 5);
rect (155+175, 65-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160+175, 60-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (165+175, 55-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (170+175, 50-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 200);
//down fringes
rect (50+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (60+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (70+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (90+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (100+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (110+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (120+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (130+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (150+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (170+175, 250-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//Up fringes
rect (55+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (75+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (85+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (95+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (105+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (115+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (125+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (135+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (145+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (165+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//white fill, fading.
fill(255, 0 + ((float) Math.sin(frameCount * 0.05) * 255));
//Left ear
rect (55+175, 60-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (55+175, 65-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (55+175, 70-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (60+175, 65-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (60+175, 70-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65+175, 70-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//Right ear
rect (165+175, 60-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (165+175, 65-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (165+175, 70-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160+175, 65-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160+175, 70-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155+175, 70-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//Main body rectangle
rect (55+175, 75-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 115, 170);
//Colour those fringes
rect (60+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (70+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (90+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (100+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (110+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (120+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (130+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140+175, +245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (150+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (160+175, 245-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//left eye
fill(0, 0 + ((float) Math.sin(frameCount * 0.05) * 255));
rect (70+175, 120-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (75+175, 120-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80+175, 125-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65+175, 125-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65+175, 130-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65+175, 135-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (65+175, 140-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80+175, 130-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80+175, 135-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (80+175, 140-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (70+175, 145-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (75+175, 145-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
//right eye
rect (145+175, 120-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (150+175, 120-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155+175, 125-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140+175, 125-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140+175, 130-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140+175, 135-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (140+175, 140-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155+175, 130-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155+175, 135-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (155+175, 140-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (145+175, 145-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (150+175, 145-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
// Nose and mouth
rect (110+175, 150-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (110+175, 155-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (110+175, 160-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (115+175, 150-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (105+175, 150-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (115+175, 165-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (105+175, 165-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (100+175, 160-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
rect (120+175, 160-mouseY+((float) Math.sin(frameCount * 0.05) * 10), 5, 5);
}
//Draw when mouse is clicked...
void mousePressed()
{
//change framerate to 5 for timing purposes.
frameRate(5);
//Turn background red.
background(200, 0, 0);
//Change cat fills to black and redraw
fill(0);
//Left ghost 2
rect (50, mouseY+50, 5, 200);
rect (55, mouseY+55, 5, 5);
rect (60, mouseY+60, 5, 5);
rect (65, mouseY+65, 5, 5);
rect (70, mouseY+70, 85, 5);
rect (155, mouseY+65, 5, 5);
rect (160, mouseY+60, 5, 5);
rect (165, mouseY+55, 5, 5);
rect (170, mouseY+50, 5, 200);
//down fringes
rect (50, mouseY+250, 5, 5);
rect (60, mouseY+250, 5, 5);
rect (70, mouseY+250, 5, 5);
rect (80, mouseY+250, 5, 5);
rect (90, mouseY+250, 5, 5);
rect (100, mouseY+250, 5, 5);
rect (110, mouseY+250, 5, 5);
rect (120, mouseY+250, 5, 5);
rect (130, mouseY+250, 5, 5);
rect (140, mouseY+250, 5, 5);
rect (150, mouseY+250, 5, 5);
rect (160, mouseY+250, 5, 5);
rect (170, mouseY+250, 5, 5);
//Up fringes
rect (55, mouseY+245, 5, 5);
rect (65, mouseY+245, 5, 5);
rect (75, mouseY+245, 5, 5);
rect (85, mouseY+245, 5, 5);
rect (95, mouseY+245, 5, 5);
rect (105, mouseY+245, 5, 5);
rect (115, mouseY+245, 5, 5);
rect (125, mouseY+245, 5, 5);
rect (135, mouseY+245, 5, 5);
rect (145, mouseY+245, 5, 5);
rect (155, mouseY+245, 5, 5);
rect (165, mouseY+245, 5, 5);
//Left ear
rect (55, mouseY+60, 5, 5);
rect (55, mouseY+65, 5, 5);
rect (55, mouseY+70, 5, 5);
rect (60, mouseY+65, 5, 5);
rect (60, mouseY+70, 5, 5);
rect (65, mouseY+70, 5, 5);
//Right ear
rect (165, mouseY+60, 5, 5);
rect (165, mouseY+65, 5, 5);
rect (165, mouseY+70, 5, 5);
rect (160, mouseY+65, 5, 5);
rect (160, mouseY+70, 5, 5);
rect (155, mouseY+70, 5, 5);
//Main body rectangle
rect (55, mouseY+75, 115, 170);
//Colour those fringes
rect (60, mouseY+245, 5, 5);
rect (70, mouseY+245, 5, 5);
rect (80, mouseY+245, 5, 5);
rect (90, mouseY+245, 5, 5);
rect (100, mouseY+245, 5, 5);
rect (110, mouseY+245, 5, 5);
rect (120, mouseY+245, 5, 5);
rect (130, mouseY+245, 5, 5);
rect (140, mouseY+245, 5, 5);
rect (150, mouseY+245, 5, 5);
rect (160, mouseY+245, 5, 5);
//left eye
fill(255, 0, 0);
rect (70, mouseY+120, 5, 5);
rect (75, mouseY+120, 5, 5);
rect (75, mouseY+125, 5, 5);
rect (70, mouseY+125, 5, 5);
rect (70, mouseY+130, 5, 5);
rect (70, mouseY+135, 5, 5);
rect (70, mouseY+140, 5, 5);
rect (75, mouseY+130, 5, 5);
rect (75, mouseY+135, 5, 5);
rect (75, mouseY+140, 5, 5);
rect (70, mouseY+145, 5, 5);
rect (75, mouseY+145, 5, 5);
//right eye
rect (145, mouseY+120, 5, 5);
rect (150, mouseY+120, 5, 5);
rect (150, mouseY+145, 5, 5);
rect (150, mouseY+125, 5, 5);
rect (145, mouseY+125, 5, 5);
rect (145, mouseY+130, 5, 5);
rect (145, mouseY+135, 5, 5);
rect (145, mouseY+140, 5, 5);
rect (150, mouseY+130, 5, 5);
rect (150, mouseY+135, 5, 5);
rect (150, mouseY+140, 5, 5);
rect (145, mouseY+145, 5, 5);
rect (150, mouseY+145, 5, 5);
// Nose
rect (110, mouseY+150, 5, 5);
rect (110, mouseY+155, 5, 5);
rect (110, mouseY+160, 5, 5);
rect (115, mouseY+150, 5, 5);
rect (105, mouseY+150, 5, 5);
rect (115, mouseY+165, 5, 5);
rect (105, mouseY+165, 5, 5);
rect (100, mouseY+160, 5, 5);
rect (120, mouseY+160, 5, 5);
//Right ghost 2
fill(0);
rect (55+175, 75-mouseY, 115, 170);
rect (50+175, 50-mouseY, 5, 200);
rect (55+175, 55-mouseY, 5, 5);
rect (60+175, 60-mouseY, 5, 5);
rect (65+175, 65-mouseY, 5, 5);
rect (70+175, 70-mouseY, 85, 5);
rect (155+175, 65-mouseY, 5, 5);
rect (160+175, 60-mouseY, 5, 5);
rect (165+175, 55-mouseY, 5, 5);
rect (170+175, 50-mouseY, 5, 200);
//down fringes
rect (50+175, 250-mouseY, 5, 5);
rect (60+175, 250-mouseY, 5, 5);
rect (70+175, 250-mouseY, 5, 5);
rect (80+175, 250-mouseY, 5, 5);
rect (90+175, 250-mouseY, 5, 5);
rect (100+175, 250-mouseY, 5, 5);
rect (110+175, 250-mouseY, 5, 5);
rect (120+175, 250-mouseY, 5, 5);
rect (130+175, 250-mouseY, 5, 5);
rect (140+175, 250-mouseY, 5, 5);
rect (150+175, 250-mouseY, 5, 5);
rect (160+175, 250-mouseY, 5, 5);
rect (170+175, 250-mouseY, 5, 5);
//Up fringes
rect (55+175, 245-mouseY, 5, 5);
rect (65+175, 245-mouseY, 5, 5);
rect (75+175, 245-mouseY, 5, 5);
rect (85+175, 245-mouseY, 5, 5);
rect (95+175, 245-mouseY, 5, 5);
rect (105+175, 245-mouseY, 5, 5);
rect (115+175, 245-mouseY, 5, 5);
rect (125+175, 245-mouseY, 5, 5);
rect (135+175, 245-mouseY, 5, 5);
rect (145+175, 245-mouseY, 5, 5);
rect (155+175, 245-mouseY, 5, 5);
rect (165+175, 245-mouseY, 5, 5);
//Left ear
rect (55+175, 60-mouseY, 5, 5);
rect (55+175, 65-mouseY, 5, 5);
rect (55+175, 70-mouseY, 5, 5);
rect (60+175, 65-mouseY, 5, 5);
rect (60+175, 70-mouseY, 5, 5);
rect (65+175, 70-mouseY, 5, 5);
//Right ear
rect (165+175, 60-mouseY, 5, 5);
rect (165+175, 65-mouseY, 5, 5);
rect (165+175, 70-mouseY, 5, 5);
rect (160+175, 65-mouseY, 5, 5);
rect (160+175, 70-mouseY, 5, 5);
rect (155+175, 70-mouseY, 5, 5);
//Main body rectangle
rect (55+175, 75-mouseY, 115, 170);
//Colour those fringes
rect (60+175, 245-mouseY, 5, 5);
rect (70+175, 245-mouseY, 5, 5);
rect (80+175, 245-mouseY, 5, 5);
rect (90+175, 245-mouseY, 5, 5);
rect (100+175, 245-mouseY, 5, 5);
rect (110+175, 245-mouseY, 5, 5);
rect (120+175, 245-mouseY, 5, 5);
rect (130+175, 245-mouseY, 5, 5);
rect (140+175, +245-mouseY, 5, 5);
rect (150+175, 245-mouseY, 5, 5);
rect (160+175, 245-mouseY, 5, 5);
//left eye
fill(0);
rect (70+175, 120-mouseY, 5, 5);
rect (75+175, 120-mouseY, 5, 5);
rect (80+175, 125-mouseY, 5, 5);
rect (65+175, 125-mouseY, 5, 5);
rect (65+175, 130-mouseY, 5, 5);
rect (65+175, 135-mouseY, 5, 5);
rect (65+175, 140-mouseY, 5, 5);
rect (80+175, 130-mouseY, 5, 5);
rect (80+175, 135-mouseY, 5, 5);
rect (80+175, 140-mouseY, 5, 5);
rect (70+175, 145-mouseY, 5, 5);
rect (75+175, 145-mouseY, 5, 5);
//right eye
rect (145+175, 120-mouseY, 5, 5);
rect (150+175, 120-mouseY, 5, 5);
rect (155+175, 125-mouseY, 5, 5);
rect (140+175, 125-mouseY, 5, 5);
rect (140+175, 130-mouseY, 5, 5);
rect (140+175, 135-mouseY, 5, 5);
rect (140+175, 140-mouseY, 5, 5);
rect (155+175, 130-mouseY, 5, 5);
rect (155+175, 135-mouseY, 5, 5);
rect (155+175, 140-mouseY, 5, 5);
rect (145+175, 145-mouseY, 5, 5);
rect (150+175, 145-mouseY, 5, 5);
// Nose and mouth
rect (110+175, 150-mouseY, 5, 5);
rect (110+175, 155-mouseY, 5, 5);
rect (110+175, 160-mouseY, 5, 5);
rect (115+175, 150-mouseY, 5, 5);
rect (105+175, 150-mouseY, 5, 5);
rect (115+175, 165-mouseY, 5, 5);
rect (105+175, 165-mouseY, 5, 5);
rect (100+175, 160-mouseY, 5, 5);
rect (120+175, 160-mouseY, 5, 5);
}