/* "AQUARIUM" by Bernice Wong
Moving the mouse vertically
- changes the width and position of the rectangles in the background
- changes the colour of the fish and background
Moving the mouse horizontally:
- changes the position of the fish and bubbles
MISC
- a fish will follow the cursor's movement*/
void setup() {
size (400, 400);
}
void draw() {
/// BACKGROUND ///
background(146, -mouseY/50 + 215, mouseY/50 + 229);
//UNMOVABLE LAYERS
noStroke(); // 5th layer
fill(84, -mouseY/50 + 126, mouseY/50 + 137);
rectMode(CORNER);
rect(0, 350, 400, 50);
noStroke(); // 4th layer
fill(90, -mouseY/50 + 136, mouseY/50 + 147);
rectMode(CORNER);
rect(0, 300, 400, 50);
noStroke(); //3rd layer
fill(100, -mouseY/50+ 150, mouseY/50 + 162);
rectMode(CORNER);
rect(0, 250, 400, 50);
noStroke(); // 2nd layer
fill(110, -mouseY/50 + 163, mouseY/50 + 175);
rectMode(CORNER);
rect(0, 200, 400, 50);
noStroke(); //1st layer
fill(126, -mouseY/50 + 188, mouseY/50 + 201);
rectMode(CORNER);
rect(0, 150, 400, 50);
// (bkg) MOVABLE LAYERS
noStroke(); // 6th layer
fill(84, -mouseY/50 + 126, mouseY/50 + 137);
rectMode(CORNER);
rect(0, mouseY/5 + 350, 400, 50);
noStroke(); // 5th layer
fill(90, -mouseY/50 + 136, mouseY/50 + 147);
rectMode(CORNER);
rect(0, mouseY/6 + 300, 400, 50);
noStroke(); //4th layer
fill(100, -mouseY/50+ 150, mouseY/50 + 162);
rectMode(CORNER);
rect(0, mouseY/7 + 250, 400, 50);
noStroke(); // 3rd layer
fill(110, -mouseY/50 + 163, mouseY/50 + 175);
rectMode(CORNER);
rect(0, mouseY/8 + 200, 400, 50);
noStroke(); //2nd layer
fill(126, -mouseY/50 + 188, mouseY/50 + 201);
rectMode(CORNER);
rect(0, mouseY/9 + 150, 400, 50);
noStroke(); //1st layer
fill(138, -mouseY/50 + 203, mouseY/50 + 216);
rectMode(CORNER);
rect(0, mouseY/10 + 100, 400, 50);
// GROUND (hindground)
noStroke();
fill(72, -mouseY/50 + 100, mouseY/50 + 100);
ellipseMode(CORNER);
ellipse(100, 325, 600, 200);
// GROUND(foreground)
noStroke();
fill(57, -mouseY/50 + 82, mouseY/50 + 82, 95);
ellipseMode(CORNER);
ellipse(- 300, 295, 600, 300);
//diamond bubbles
noStroke();
//diamond 1
fill(255, 255, 255, 90);
triangle(100 - mouseX/8, 100, 120 - mouseX/8, 100, 110 - mouseX/8, 90);
triangle(100 - mouseX/8, 100, 120 - mouseX/8, 100, 110 - mouseX/8, 110);
//diamond 2
fill(255, 255, 255, 70);
triangle(225 - mouseX/10, 200, 245 - mouseX/10, 200, 235 - mouseX/10, 190);
triangle(225 - mouseX/10, 200, 245 - mouseX/10, 200, 235 - mouseX/10, 210);
//diamond 3
fill(255, 255, 255, 95);
triangle(275 - mouseX/8, 125, 295 - mouseX/8, 125, 285 - mouseX/8, 115);
triangle(275 - mouseX/8, 125, 295 - mouseX/8, 125, 285 - mouseX/8, 135);
//diamond 4
fill(255, 255, 255, 80);
triangle(325 - mouseX/10, 150, 345 - mouseX/10, 150, 335 - mouseX/10, 140);
triangle(325 - mouseX/10, 150, 345 - mouseX/10, 150, 335 - mouseX/10, 160);
//diamond 5
fill(255, 255, 255, 99);
triangle(380 - mouseX/9, 50, 400 - mouseX/9, 50, 390 - mouseX/9, 40);
triangle(380 - mouseX/9, 50, 400 - mouseX/9, 50, 390 - mouseX/9, 60);
//diamond 6
fill(255, 255, 255, 60);
triangle(350 - mouseX/5, 80, 370 - mouseX/5, 80, 360 - mouseX/5, 70);
triangle(350 - mouseX/5, 80, 370 - mouseX/5, 80, 360 - mouseX/5, 90);
//diamond 7
fill(255, 255, 255, 50);
triangle(50 - mouseX/5, 270, 70 - mouseX/5, 270, 60 - mouseX/5, 260);
triangle(50 - mouseX/5, 270, 70 - mouseX/5, 270, 60 - mouseX/5, 280);
//diamond 8
stroke(255, 255, 255, 90);
line(100 - mouseX/13, 200, 90 - mouseX/13, 210);
line(100 - mouseX/13, 200, 110 - mouseX/13, 210);
line(90 - mouseX/13, 210, 100 - mouseX/13, 220);
line(100 - mouseX/13, 220, 110 - mouseX/13, 210);
//diamond 9
stroke(255 - mouseX/11, 255, 255, 90);
line(55 - mouseX/11, 135, 45 - mouseX/11, 145);
line(45 - mouseX/11, 145, 55 - mouseX/11, 155);
line(55 - mouseX/11, 155, 65 - mouseX/11, 145);
line(65 - mouseX/11, 145, 55 - mouseX/11, 135);
//diamond 10
stroke(255 - mouseX/12, 255, 255, 90);
line(250 - mouseX/12, 30, 240 - mouseX/12, 40);
line(240 - mouseX/12, 40, 250 - mouseX/12, 50);
line(250 - mouseX/12, 50, 260 - mouseX/12, 40);
line(260 - mouseX/12, 40, 250 - mouseX/12, 30);
//diamond 11
stroke(255 - mouseX/14, 255, 255 - mouseX/14, 90);
line(380 - mouseX/14, 280, 370 - mouseX/14, 290);
line(370 - mouseX/14, 290, 380 - mouseX/14, 300);
line(380 - mouseX/14, 300, 390 - mouseX/14, 290);
line(390 - mouseX/14, 290, 380 - mouseX/14, 280);
/// FISH ///
// SMALLER FISH
// FISH 1
noStroke(); // body
fill(84, 126, 137, mouseY/5 + 25);
ellipseMode (CORNER);
ellipse(mouseX/5 + 100, 40, 30, 10);
noStroke(); //tail
fill(84, 126, 137, mouseY/5 + 85);
triangle(mouseX/5 + 130, 45, mouseX/5 + 140, 57, mouseX/5 + 140, 30);
// FISH 2
noStroke(); // body
fill(84, 126, 137, mouseY/5 + 25);
ellipseMode (CORNER);
ellipse(mouseX/5 + 130, 120, 30, 10);
noStroke(); // tail
fill(84, 126, 137, mouseY/5 + 85);
triangle(mouseX/5 + 160, 125, mouseX/5 + 170, 137, mouseX/5 + 170, 110);
// FISH 3
noStroke(); // body
fill(mouseY/0.8 + 84, 126, 137, mouseY/5 + 25);
ellipseMode (CORNER);
ellipse(mouseX/5 + 280, 90, 30, 10);
noStroke(); // tail
fill(mouseY/0.8 + 84, 126, 137, mouseY/5 + 85);
triangle(mouseX/5 + 310, 95, mouseX/5 + 320, 107, mouseX/5 + 320, 80);
// FISH 4
noStroke(); // body
fill(mouseY + 84, 126, 137, mouseY/5 + 25);
ellipseMode (CORNER);
ellipse(mouseX/5 + 40, 240, 30, 10);
noStroke(); // tail
fill(mouseY + 84, 126, 137, mouseY/5 + 85);
triangle(mouseX/5 + 70, 245, mouseX/5 + 80, 257, mouseX/5 + 80, 230);
// FISH 5
noStroke(); // body
fill(mouseY/1.2 + 84, 126, 137, mouseY/5 + 25);
ellipseMode (CORNER);
ellipse(mouseX/5 + 260, 310, 30, 10);
noStroke(); // tail
fill(mouseY/1.2 + 84, 126, 137, mouseY/5 + 85);
triangle(mouseX/5 + 290, 315, mouseX/5 + 300, 327, mouseX/5 + 300, 300);
// FISH 6
noStroke(); // body
fill(84, 126, 137, 100);
ellipseMode (CORNER);
ellipse(mouseX/5 + 150, 70, 30, 10);
noStroke(); // tail
fill(84, 126, 137, 100);
triangle(mouseX/5 + 180, 75, mouseX/5 + 190, 87, mouseX/5 + 190, 60);
// FISH 7
noStroke(); // body
fill(mouseY/1.4 + 84, 126, 137, mouseY/5 + 25);
ellipseMode (CORNER);
ellipse(mouseX/5 + 350, 350, 30, 10);
noStroke(); // tail
fill(mouseY/1.4 + 84, 126, 137, mouseY/5 + 85);
triangle(mouseX/5 + 380, 355, mouseX/5 + 390, 367, mouseX/5 + 390, 340);
// FISH 8
noStroke(); // body
fill(mouseY/1.6 + 84, 126, 137, 75);
ellipseMode (CORNER);
ellipse(mouseX/5 - 20, 270, 30, 10);
noStroke(); // tail
fill(mouseY/1.6 + 84, 126, 137, 85);
triangle(mouseX/5 + 10, 275, mouseX/5 + 20, 287, mouseX/5 + 20, 260);
// FISH 9
noStroke(); // body
fill(mouseY/1.8 + 84, 126, 137, 75);
ellipseMode (CORNER);
ellipse(mouseX/5 + 80, 310, 30, 10);
noStroke(); // tail
fill(mouseY/1.8 + 84, 126, 137, 85);
triangle(mouseX/5 + 110, 315, mouseX/5 + 120, 327, mouseX/5 + 120, 300);
// FISH 10
noStroke(); // body
fill(mouseY/2 + 84, 126, 137, 75);
ellipseMode (CORNER);
ellipse(mouseX/5 + 210, 330, 30, 10);
noStroke(); // tail
fill(mouseY/2 + 84, 126, 137, 85);
triangle(mouseX/5 + 240, 335, mouseX/5 + 250, 347, mouseX/5 + 250, 320);
// LARGER FISH
// FISH THAT FOLLOWS MOUSE
noStroke(); // body
fill(245, 156, 174, 98);
ellipseMode (CORNER);
ellipse(mouseX, mouseY, 40, 20);
noStroke(); // tail
fill(245, 156, 174);
triangle(mouseX + 40, mouseY + 10, mouseX + 50, mouseY + 30, mouseX + 50, mouseY - 10);
// FISH 1
noStroke(); // body
fill(245, 156, 174, 98);
ellipseMode (CORNER);
ellipse(mouseX/3 + 200, 200, 40, 20);
noStroke(); // tail
fill(245, 156, 174);
triangle(mouseX/3 + 240, 210, mouseX/3 + 255, 230, mouseX/3 + 255, 190);
// FISH 2
noStroke(); // body
fill(mouseY + 250, 156, 164, 98);
ellipseMode (CORNER);
ellipse(mouseX/4 + 160, 175, 40, 20);
noStroke(); // tail
fill(245, 156 - 10, 174);
triangle(mouseX/4 + 200, 185, mouseX/4 + 215, 205, mouseX/4 + 215, 165);
// FISH 3
noStroke(); // body
fill(mouseY + 245, 156, 174, 98);
ellipseMode (CORNER);
ellipse(mouseX/3 + 275, 255, 40, 20);
noStroke(); // tail
fill(245, 156, 174);
triangle(mouseX/3 + 315, 265, mouseX/3 + 330, 285, mouseX/3 + 330, 245);
// FISH 4
noStroke(); // body
fill(mouseY + 235, 156, 164, 98);
ellipseMode (CORNER);
ellipse(mouseX/4 + 300, 122, 40, 20);
noStroke(); // tail
fill(245, 156, 174);
triangle(mouseX/4 + 340, 132, mouseX/4 + 355, 152, mouseX/4 + 355, 112);
// FISH 5
noStroke(); // body
fill(mouseY + 240, 156, 174, 98);
ellipseMode (CORNER);
ellipse(mouseX/5 + 50, 50, 40, 20);
noStroke(); // tail
fill(245, 156, 174);
triangle(mouseX/5 + 90, 60, mouseX/5 + 105, 80, mouseX/5 + 105, 40);
// FISH 6
// body
noStroke();
fill(mouseY + 255, 156, 164, 98);
ellipseMode (CORNER);
ellipse(mouseX/3 + 85, 290, 40, 20);
noStroke(); // tail
fill(mouseY + random(235, 255), 156, 164);
triangle(mouseX/3 + 125, 300, mouseX/3 + 140, 320, mouseX/3 + 140, 280);
/* // FISH 7
noStroke(); // body
fill(mouseY + 225, 156, 174, 98);
ellipseMode (CORNER);
ellipse(mouseX/3, 100, 40, 20);
noStroke(); // tail
fill(245, 156, 174);
triangle(mouseX/3 + 40, 110, mouseX/3 + 55, 130, mouseX/3 + 55, 90); */
}