/*
Title: Fishybois
By: Chavaiz Amil
Instructions:
Move the mouse to move the fish, seaweed, bottle of feed, and tank
Press the mouse to drop feed into the tank and activate text
*/
void setup() {
size(400, 400);
noStroke();
rectMode(CORNERS);
ellipseMode(CENTER);
}
void draw() {
frameRate(60);
//wall
background(180, 180, 180);
fill(100, 100, 100);
rect(-15, 370, 415, 415);
//desk
fill(44, 29, 14);
rect(-15-mouseX/25, 340+mouseY/25, 415-mouseX/25, 370+mouseY/25);
fill(82, 54, 27);
rect(-15-mouseX/25, 240+mouseY/25, 415-mouseX/25, 340+mouseY/25);
//tank back panel
fill(201, 219, 220, 200);
rect(90-mouseX/25, 90+mouseY/25, 310-mouseX/25, 250+mouseY/25);
//filter
fill(50, 50, 50);
rect(180-mouseX/25, 90+mouseY/25, 200-mouseX/25, 140+mouseY/25);
rect(190-mouseX/25, 140+mouseY/25, 200-mouseX/25, 160+mouseY/25);
//bubbles
fill(150, 150, 255, 150+sin(millis()/100)*30);
ellipse(195-mouseX/25, 165+mouseY/25, 5+sin(millis()/200)*.85, 5+sin(millis()/200)*.85);
ellipse(203-mouseX/25, 168+mouseY/25, 5.5+sin(millis()/100)*.85, 5.5+sin(millis()/100)*.85);
fill(150, 150, 255, 150+sin(millis()/150)*30);
ellipse(207-mouseX/25, 155+mouseY/25, 6+sin(millis()/200)*1, 6+sin(millis()/200)*1);
ellipse(212-mouseX/25, 145+mouseY/25, 7+sin(millis()/100)*.85, 7+sin(millis()/100)*.85);
//tank bottom
fill(194, 178, 128);
quad(10-mouseX/25, 320+mouseY/25, 90-mouseX/25, 250+mouseY/25, 310-mouseX/25, 250+mouseY/25, 390-mouseX/25, 320+mouseY/25);
//side panel
fill(201, 219, 220, 100);
//left
quad(10-mouseX/25, 50+mouseY/25, 90-mouseX/25, 90+mouseY/25, 90-mouseX/25, 250+mouseY/25, 10-mouseX/25, 320+mouseY/25);
//right
quad(310-mouseX/25, 250+mouseY/25, 390-mouseX/25, 320+mouseY/25, 390-mouseX/25, 50+mouseY/25, 310-mouseX/25, 90+mouseY/25);
//rock
fill(115, 115, 115);
rectMode(CENTER);
rect(110-mouseX/25, 265+mouseY/25, 40, 25, 200);
//coral
fill(115, 20, 20);
rect(315-mouseX/25, 270+mouseY/25, 20, 40, 200);
rect(321-mouseX/25, 250+mouseY/25, 7, 15, 200);
rect(310-mouseX/25, 250+mouseY/25, 9, 20, 200);
rect(313-mouseX/25, 258+mouseY/25, 30, 8, 200);
//seaweed - wavybois
stroke(69, 199, 69);
strokeWeight(3);
//left patch
line(110-mouseX/25, 280+mouseY/25, 117-pmouseX*2/25+cos(millis()/200)*2, 250+mouseY/25);
line(113-mouseX/25, 282+mouseY/25, 120-pmouseX*2/25+sin(millis()/200)*2, 253+mouseY/25);
line(116-mouseX/25, 280+mouseY/25, 123-pmouseX*2/25+sin(millis()/200)*2, 248+mouseY/25);
line(119-mouseX/25, 283+mouseY/25, 123-pmouseX*2/25+cos(millis()/200)*2, 256+mouseY/25);
line(122-mouseX/25, 280+mouseY/25, 126-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
line(125-mouseX/25, 281+mouseY/25, 129-pmouseX*2/25+sin(millis()/200)*2, 250+mouseY/25);
line(128-mouseX/25, 280+mouseY/25, 135-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
line(121-mouseX/25, 279+mouseY/25, 135-pmouseX*2/25+sin(millis()/200)*2, 253+mouseY/25);
//left middle patch
line(160-mouseX/25, 280+mouseY/25, 165-pmouseX*2/25+sin(millis()/200)*2, 250+mouseY/25);
line(165-mouseX/25, 282+mouseY/25, 172-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
line(170-mouseX/25, 280+mouseY/25, 179-pmouseX*2/25+sin(millis()/200)*2, 248+mouseY/25);
line(173-mouseX/25, 283+mouseY/25, 184-pmouseX*2/25+cos(millis()/200)*2, 256+mouseY/25);
line(176-mouseX/25, 280+mouseY/25, 187-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
line(180-mouseX/25, 281+mouseY/25, 190-pmouseX*2/25+sin(millis()/200)*2, 250+mouseY/25);
line(182-mouseX/25, 280+mouseY/25, 190-pmouseX*2/25+sin(millis()/200)*2, 253+mouseY/25);
line(185-mouseX/25, 279+mouseY/25, 192-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
//right middle patch
line(200-mouseX/25, 280+mouseY/25, 207-pmouseX*2/25+cos(millis()/200)*2, 250+mouseY/25);
line(205-mouseX/25, 282+mouseY/25, 210-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
line(210-mouseX/25, 280+mouseY/25, 210-pmouseX*2/25+sin(millis()/200)*2, 248+mouseY/25);
line(213-mouseX/25, 283+mouseY/25, 213-pmouseX*2/25+cos(millis()/200)*2, 256+mouseY/25);
line(216-mouseX/25, 280+mouseY/25, 216-pmouseX*2/25+sin(millis()/200)*2, 253+mouseY/25);
line(220-mouseX/25, 281+mouseY/25, 222-pmouseX*2/25+sin(millis()/200)*2, 250+mouseY/25);
line(222-mouseX/25, 280+mouseY/25, 219-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
line(225-mouseX/25, 279+mouseY/25, 225-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
//right patch
line(230-mouseX/25, 280+mouseY/25, 237-pmouseX*2/25+sin(millis()/200)*2, 250+mouseY/25);
line(235-mouseX/25, 282+mouseY/25, 240-pmouseX*2/25+sin(millis()/200)*2, 253+mouseY/25);
line(240-mouseX/25, 280+mouseY/25, 240-pmouseX*2/25+cos(millis()/200)*2, 248+mouseY/25);
line(243-mouseX/25, 283+mouseY/25, 243-pmouseX*2/25+cos(millis()/200)*2, 256+mouseY/25);
line(246-mouseX/25, 280+mouseY/25, 246-pmouseX*2/25+cos(millis()/200)*2, 253+mouseY/25);
line(250-mouseX/25, 281+mouseY/25, 252-pmouseX*2/25+sin(millis()/200)*2, 250+mouseY/25);
line(252-mouseX/25, 280+mouseY/25, 259-pmouseX*2/25+sin(millis()/200)*2, 253+mouseY/25);
line(255-mouseX/25, 279+mouseY/25, 265-pmouseX*2/25+sin(millis()/200)*2, 253+mouseY/25);
//disable stroke
noStroke();
//bottle thing
fill(255, 165, 0);
rectMode(CENTER);
ellipse(mouseX, 28, 20, 20);
rect(mouseX, 45, 20, 40);
fill(255, 255, 255);
rect(mouseX, 45, 20, 20);
//feesh
fill(255, 135, 0);
rect(70+mouseX/1.5, 150+mouseY/3, 40, 27, 50);
triangle(50+mouseX/1.5, 150+mouseY/3, 40+mouseX/1.5, 140+mouseY/3, 40+mouseX/1.5, 160+mouseY/3);
rect(330-mouseX/1.5, 250-mouseY/3, 40, 27, 50);
triangle(350-mouseX/1.5, 250-mouseY/3, 360-mouseX/1.5, 240-mouseY/3, 360-mouseX/1.5, 260-mouseY/3);
fill(255);
rect(330-mouseX/1.5, 250-mouseY/3, 10, 27);
fill(0);
ellipse(85+mouseX/1.5, 147+mouseY/3, 3, 3);
ellipse(315-mouseX/1.5, 247-mouseY/3, 3, 3);
//tank front panel - inside all behind this
fill(201, 219, 220, 75);
rectMode(CORNERS);
rect(10-mouseX/25, 50+mouseY/25, 390-mouseX/25, 320+mouseY/25);
}
void mousePressed() {
frameRate(2);
//feed
ellipseMode(CENTER);
fill(240, 140, 0, 100);
ellipse(pmouseX+5, pmouseY-5, 5, 5);
ellipse(pmouseX-9, pmouseY-13, 5, 5);
ellipse(pmouseX+10, pmouseY-10, 5, 5);
ellipse(pmouseX-5, pmouseY-7, 5, 5);
ellipse(pmouseX, pmouseY-15, 5, 5);
println("Have you seen my son???");
}