Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//Fish Tank
//Rachel Keilhofer
//Instructions:
//Move mouse to move fish
//Press mouse button to change colours
//Press any key to animate fish

void setup() {
  //Set the size of the window
  size(400, 400);
}

void draw() {
  //Set frame rate
  frameRate(20);
  //Set ellipse to CENTER mode
  ellipseMode(CENTER);

  //Draw a light blue background
  background(100, 200, 255, 200);

  //Draw Dark Blue Base
  fill(0, 100, 155, 200);
  noStroke();
  ellipse(200, 400, 400, 160);

  //Set rectangle and ellipse to CORNERS mode
  rectMode(CORNERS);
  ellipseMode(CORNERS);

  //Draw Light Green Seaweed
  noStroke();
  fill(50, 240, 10, 220);
  //Draw triangle
  triangle(40, 130, 50, 110, 60, 130);
  //Draw rectangle
  rect(45, 120, 55, 380);
  //Draw circles
  ellipse(40, 360, 60, 380);
  ellipse(40, 320, 60, 340);
  ellipse(40, 280, 60, 300);
  ellipse(40, 240, 60, 260);
  ellipse(40, 200, 60, 220);
  ellipse(40, 160, 60, 180);
  ellipse(40, 120, 60, 140);

  //Draw Dark Green Seaweed
  fill(50, 160, 10, 220);
  //Draw triangle
  triangle(150, 70, 140, 90, 160, 90);
  //Draw rectangle
  rect(145, 80, 155, 340);
  //Draw circles
  ellipse(140, 320, 160, 340);
  ellipse(140, 280, 160, 300);
  ellipse(140, 240, 160, 260);
  ellipse(140, 200, 160, 220);
  ellipse(140, 160, 160, 180);
  ellipse(140, 120, 160, 140);
  ellipse(140, 80, 160, 100);

  //Draw Mid-tone Green Seaweed
  fill(50, 200, 10, 220);
  //Draw triangle
  triangle(330, 90, 320, 110, 340, 110);
  //Draw rectangle
  rect(325, 100, 335, 360);
  //Draw circles
  ellipse(320, 340, 340, 360);
  ellipse(320, 300, 340, 320);
  ellipse(320, 260, 340, 280);
  ellipse(320, 220, 340, 240);
  ellipse(320, 180, 340, 200);
  ellipse(320, 140, 340, 160);
  ellipse(320, 100, 340, 120);

  //Draw Orange Fish
  fill(255, 150, 20);
  ellipseMode(CENTER);
  //Draw fish body
  ellipse(mouseX, mouseY, 80, 60);
  //Draw fish tail
  triangle(mouseX+30, mouseY, mouseX+60, mouseY-30, mouseX+60, mouseY+30);
  //Draw fin
  fill(255, 100, 0);
  triangle(mouseX, mouseY, mouseX+20, mouseY-20, mouseX+20, mouseY+20);
  //Draw white fish eye
  fill(255);
  ellipse(mouseX-20, mouseY-5, 15, 15);
  //Draw fish pupil
  fill(0);
  ellipse(mouseX-22.5, mouseY-5, 7.5, 7.5);
  //Draw fish mouth
  stroke(0);
  strokeWeight(2);
  line(mouseX-35, mouseY+10, mouseX-20, mouseY+10);
  noStroke();
}

//Change colours when mouse is pressed
void mousePressed() {
  //Set frame rate
  frameRate(5);
  //Set ellipse to CENTER mode
  ellipseMode(CENTER);

  //Draw a light pink background
  background(230, 150, 150, 200);

  //Draw dark pink base
  fill(255, 50, 50, 200);
  noStroke();
  ellipse(200, 400, 400, 160);

  //Set rectangle and ellipse to CORNERS mode
  rectMode(CORNERS);
  ellipseMode(CORNERS);

  //Draw Light Purple Seaweed
  noStroke();
  fill(255, 50, 255, 220);
  //Draw triangle
  triangle(40, 130, 50, 110, 60, 130);
  //Draw rectangle
  rect(45, 120, 55, 380);
  //Draw circles
  ellipse(40, 360, 60, 380);
  ellipse(40, 320, 60, 340);
  ellipse(40, 280, 60, 300);
  ellipse(40, 240, 60, 260);
  ellipse(40, 200, 60, 220);
  ellipse(40, 160, 60, 180);
  ellipse(40, 120, 60, 140);

  //Draw Dark Purple Seaweed
  fill(200, 0, 255, 220);
  //Draw triangle
  triangle(150, 70, 140, 90, 160, 90);
  //Draw rectangle
  rect(145, 80, 155, 340);
  //Draw circles
  ellipse(140, 320, 160, 340);
  ellipse(140, 280, 160, 300);
  ellipse(140, 240, 160, 260);
  ellipse(140, 200, 160, 220);
  ellipse(140, 160, 160, 180);
  ellipse(140, 120, 160, 140);
  ellipse(140, 80, 160, 100);

  //Draw Mid-tone Pink Seaweed
  fill(225, 25, 255, 220);
  //Draw triangle
  triangle(330, 90, 320, 110, 340, 110);
  //Draw rectangle
  rect(325, 100, 335, 360);
  //Draw circles
  ellipse(320, 340, 340, 360);
  ellipse(320, 300, 340, 320);
  ellipse(320, 260, 340, 280);
  ellipse(320, 220, 340, 240);
  ellipse(320, 180, 340, 200);
  ellipse(320, 140, 340, 160);
  ellipse(320, 100, 340, 120);
  //Draw Orange Fish
  fill(255, 150, 20);
  ellipseMode(CENTER);
  //Draw fish body
  ellipse(mouseX, mouseY, 80, 60);
  //Draw fish tail
  triangle(mouseX+30, mouseY, mouseX+60, mouseY-30, mouseX+60, mouseY+30);
  //Draw fin
  fill(255, 100, 0);
  triangle(mouseX, mouseY, mouseX+20, mouseY-20, mouseX+20, mouseY+20);
  //Draw white fish eye
  fill(255);
  ellipse(mouseX-20, mouseY-5, 15, 15);
  //Draw fish pupil
  fill(0);
  ellipse(mouseX-22.5, mouseY-5, 7.5, 7.5);
  //Draw fish mouth
  stroke(0);
  strokeWeight(2);
  line(mouseX-35, mouseY+10, mouseX-20, mouseY+10);
  noStroke();
}

//Press any key, fish smiles and blows bubbles
void keyPressed() {
  //Lower Frame Rate
  frameRate(5);
  //Draw white fish eye
  fill(255);
  ellipse(mouseX-20, mouseY-5, 15, 15);
  //Draw fish pupil
  fill(0);
  ellipse(mouseX-17.5, mouseY-7.5, 7.5, 7.5);
  //Draw fish mouth
  stroke(0);
  strokeWeight(2);
  line(mouseX-35, mouseY+10, mouseX-20, mouseY+10);
  //Draw fish mouth bottom
  line(mouseX-20, mouseY+10, mouseX-28, mouseY+20);
  //Draw bubbles
  noStroke();
  strokeWeight(1);
  fill(0, 150, 255, 150);
  ellipse(mouseX-65, mouseY-15, 15, 15);
  ellipse(mouseX-45, mouseY-45, 15, 15);
  ellipse(mouseX-60, mouseY-80, 15, 15);
  //Draw bubble hightlights
  fill(255, 200);
  ellipse(mouseX-62.5, mouseY-17.5, 7, 7);
  ellipse(mouseX-42.5, mouseY-47.5, 7, 7);
  ellipse(mouseX-57.5, mouseY-82.5, 7, 7);
}