//variables float tadColorR; float tadColorB; float tadColorG; int foodcount = 0; boolean fed = false; boolean fat = false; boolean play = false; boolean love = false; boolean coloractive = false; boolean canevolve = false; boolean evolved = false; void setup() { size(400, 400); rectMode(CORNERS); noStroke(); //sets base tadpole color tadColorR = 40; tadColorB = 90; tadColorG = 240; } void draw() { //calls on functions enviroment(); tadpole(); } //create the enviroment void enviroment() { //backwall fill (100); rect(0, 0, 400, 300); fill (50); rect(0, 300, 400, 400); //wall lines for (int linex = 1; linex < 40; linex = linex+1) { fill(0); rect(linex*10, 0, linex*10+1, 300); } //light fill (255, 255, 200, 50+sin(millis()/200)*30); ellipse (50, 40, 60, 60); fill (255, 255, 200, 50+sin(millis()/150)*30); ellipse (200, 40, 60, 60); fill (255, 255, 200, 50+sin(millis()/250)*30); ellipse (350, 40, 60, 60); //lightbulbs fill (255, 255, 200, 200+sin(millis()/220)*30); ellipse (50, 30, 20, 20); ellipse (350, 30, 20, 20); ellipse (200, 30, 20, 20); //lamps fill (200); arc(50, 30, 50, 50, PI, TWO_PI); arc(200, 30, 50, 50, PI, TWO_PI); arc(350, 30, 50, 50, PI, TWO_PI); //tank fill(230); rect(120, 310, 280, 330); rect(120, 100, 280, 120); //glass fill (255, 90); rect(100, 310, 300, 120); //water fill (170, 170, 255, 170); rect (105, 305, 295, 130+sin(millis()/300*1.8)); //button backs stroke(255); fill(0); rect(30, 394, 68, 358); rect(105, 394, 143, 358); rect(181, 394, 219, 358); rect(257, 394, 295, 358); rect(333, 394, 371, 358); //food button noStroke(); fill (255); rect(38, 390, 60, 385); rect(37, 383, 61, 381); rect(39, 379, 59, 376); rect(37, 374, 61, 372); arc(49, 370, 22, 15, PI, TWO_PI); //toy button ellipse(120, 371, 15, 15); ellipse(129, 387, 7, 7); stroke(255); strokeWeight(3); line(120, 371, 129, 387); noStroke(); //color button arc(200, 373, 7, 20, PI, TWO_PI); triangle(198, 373, 202, 373, 200, 392); //compliment button ellipse(276, 373, 20, 15); triangle(275, 378, 280, 378, 285, 389); //food bar fill(150); rect(80, 150, 90, 200); ////evolve button fill(150); ellipse(348, 376, 15, 15); triangle(350, 380, 350, 372, 370, 376); } void tadpole() { //only if it's still a tadpole if (evolved == false) { //love your buddy if (love == true && fat == false) { fill (255, 200, 200); triangle (200, 158+sin(millis()/300*1.5), 207, 150+sin(millis()/300*1.5), 193, 150+sin(millis()/300*1.5)); triangle (207, 150+sin(millis()/300*1.5), 200, 150+sin(millis()/300*1.5), 204, 145+sin(millis()/300*1.5)); triangle (200, 150+sin(millis()/300*1.5), 193, 150+sin(millis()/300*1.5), 196, 145+sin(millis()/300*1.5)); } else if (love == true && fat == true) { //nothing } //feed and over feed if (fed == true && foodcount == 1) { fill(255); rect(255, 205, 250, 210); rect(80, 190, 90, 200); } else if (fed == true && foodcount == 2) { fill(255); rect(255, 205, 250, 210); rect(235, 235, 230, 240); fill(0, 255, 0); rect(80, 180, 90, 200); } else if (fed == true && foodcount == 3) { fill(255); rect(255, 205, 250, 210); rect(235, 235, 230, 240); rect(150, 200, 155, 205); fill(255, 255, 0); rect(80, 170, 90, 200); } else if (fed == true && foodcount == 4) { fill(255); rect(255, 205, 250, 210); rect(235, 235, 230, 240); rect(150, 200, 155, 205); rect(160, 240, 165, 245); fill(255, 150, 0); rect(80, 160, 90, 200); } else if (fed ==true && foodcount >= 5) { fat = true; fill(255); rect(255, 205, 250, 210); rect(235, 235, 230, 240); rect(150, 200, 155, 205); rect(160, 240, 165, 245); rect(130, 250, 135, 255); rect(280, 250, 285, 255); fill(255, 0, 0); rect(80, 150, 90, 200); } //play with if it's not dead if (play == true && fat == false) { fill(tadColorR+20, tadColorG+20, tadColorB+20); triangle(210+sin(millis()/350)*10, 260, 190+sin(millis()/350)*10, 260, 200+sin(millis()/350)*1.5, 210); triangle(210+sin(millis()/350)*10, 240, 190+sin(millis()/350)*10, 240, 200+sin(millis()/350)*1.5, 210); fill(tadColorR, tadColorG, tadColorB); ellipse(200, 190, 50, 50); triangle(210+sin(millis()/350)*1.5, 210, 190+sin(millis()/350)*1.5, 210, 200+sin(millis()/350)*10, 270); fill(255); ellipse(187+cos(millis()/350)*1.5, 190, 10, 10); ellipse(213+cos(millis()/350)*1.5, 190, 10, 10); fill(0); ellipse(185+cos(millis()/350)*1.5+(mouseX/75), 187+(mouseY/75), 4, 4); ellipse(211+cos(millis()/350)*1.5+(mouseX/75), 187+(mouseY/75), 4, 4); fill(0); //smile arc(200+cos(millis()/350)*1.5, 202, 8, 8, 0, PI); //toy fill(255, 220, 220); ellipse(269+cos(millis()/350)*5, 201, 15, 15); ellipse(269+cos(millis()/350)*2, 217, 7, 7); stroke(255, 220, 220); strokeWeight(3); line(269+cos(millis()/350)*5, 201, 269+cos(millis()/350)*2, 217); noStroke(); fill(255, 220, 220); ellipse(131+cos(millis()/350)*5, 201, 15, 15); ellipse(131+cos(millis()/350)*2, 217, 7, 7); stroke(255, 220, 220); line(131+cos(millis()/350)*5, 201, 131+cos(millis()/350)*2, 217); noStroke(); strokeWeight(2); } //normal alive tadpole if (coloractive == false && fat == false && play == false) { fill(tadColorR+20, tadColorG+20, tadColorB+20); triangle(210+sin(millis()/350)*10, 260, 190+sin(millis()/350)*10, 260, 200+sin(millis()/350)*1.5, 210); triangle(210+sin(millis()/350)*10, 240, 190+sin(millis()/350)*10, 240, 200+sin(millis()/350)*1.5, 210); fill(tadColorR, tadColorG, tadColorB); ellipse(200, 190, 50, 50); triangle(210+sin(millis()/350)*1.5, 210, 190+sin(millis()/350)*1.5, 210, 200+sin(millis()/350)*10, 270); fill(255); ellipse(187+cos(millis()/350)*1.5, 190, 10, 10); ellipse(213+cos(millis()/350)*1.5, 190, 10, 10); fill(0); ellipse(185+cos(millis()/350)*1.5+(mouseX/75), 187+(mouseY/75), 4, 4); ellipse(211+cos(millis()/350)*1.5+(mouseX/75), 187+(mouseY/75), 4, 4); stroke(0); strokeWeight(2); line(198+cos(millis()/350)*1.5, 205, 202+cos(millis()/350)*1.5, 205); noStroke(); } else if (coloractive == true && fat == false && play ==false) { //alive fancy colored tadpole fill(tadColorR+20, tadColorG+20, tadColorB+20); triangle(210+sin(millis()/350)*10, 260, 190+sin(millis()/350)*10, 260, 200+sin(millis()/350)*1.5, 210); triangle(210+sin(millis()/350)*10, 240, 190+sin(millis()/350)*10, 240, 200+sin(millis()/350)*1.5, 210); fill(tadColorR, tadColorG, tadColorB); ellipse(200, 190, 50, 50); triangle(210+sin(millis()/350)*1.5, 210, 190+sin(millis()/350)*1.5, 210, 200+sin(millis()/350)*10, 270); fill(255); ellipse(187+cos(millis()/350)*1.5, 190, 10, 10); ellipse(213+cos(millis()/350)*1.5, 190, 10, 10); fill(0); ellipse(185+cos(millis()/350)*1.5+(mouseX/75), 187+(mouseY/75), 4, 4); ellipse(211+cos(millis()/350)*1.5+(mouseX/75), 187+(mouseY/75), 4, 4); stroke(0); strokeWeight(2); line(198+cos(millis()/350)*1.5, 205, 202+cos(millis()/350)*1.5, 205); noStroke(); } else if (coloractive == true && fat == false && play == true) { //play with fancy color tadpole fill(tadColorR+20, tadColorG+20, tadColorB+20); triangle(210+sin(millis()/350)*10, 260, 190+sin(millis()/350)*10, 260, 200+sin(millis()/350)*1.5, 210); triangle(210+sin(millis()/350)*10, 240, 190+sin(millis()/350)*10, 240, 200+sin(millis()/350)*1.5, 210); fill(tadColorR, tadColorG, tadColorB); ellipse(200, 190, 50, 50); triangle(210+sin(millis()/350)*1.5, 210, 190+sin(millis()/350)*1.5, 210, 200+sin(millis()/350)*10, 270); fill(255); ellipse(187+cos(millis()/350)*1.5, 190, 10, 10); ellipse(213+cos(millis()/350)*1.5, 190, 10, 10); fill(0); ellipse(185+cos(millis()/350)*1.5+(mouseX/75), 187+(mouseY/75), 4, 4); ellipse(211+cos(millis()/350)*1.5+(mouseX/75), 187+(mouseY/75), 4, 4); //smile arc(200+cos(millis()/350)*1.5, 202, 8, 8, 0, PI); } else if (fat == true && play == false) { //grey dead tadpole fill(200); triangle(210, 260+sin(millis()/350)*2, 190, 260+sin(millis()/350)*2, 200, 210+sin(millis()/350)*2); triangle(210, 240+sin(millis()/350)*2, 190, 240+sin(millis()/350)*2, 200, 210+sin(millis()/350)*2); fill(150); ellipse(200, 190+sin(millis()/350)*2, 50, 50); triangle(210, 210+sin(millis()/350)*2, 190, 210+sin(millis()/350)*3, 200, 270+sin(millis()/350)*2); fill(255); ellipse(187, 190+sin(millis()/350)*2, 10, 10); ellipse(213, 190+sin(millis()/350)*2, 10, 10); stroke(0); strokeWeight(2); line(198, 205+sin(millis()/350)*2, 202, 205+sin(millis()/350)*2); noStroke(); } else if (play == true && fat == true) { //grey dead tadpole that you played with one time fill(200); triangle(210, 260+sin(millis()/350)*2, 190, 260+sin(millis()/350)*2, 200, 210+sin(millis()/350)*2); triangle(210, 240+sin(millis()/350)*2, 190, 240+sin(millis()/350)*2, 200, 210+sin(millis()/350)*2); fill(150); ellipse(200, 190+sin(millis()/350)*2, 50, 50); triangle(210, 210+sin(millis()/350)*2, 190, 210+sin(millis()/350)*3, 200, 270+sin(millis()/350)*2); fill(255); ellipse(187, 190+sin(millis()/350)*2, 10, 10); ellipse(213, 190+sin(millis()/350)*2, 10, 10); stroke(0); strokeWeight(2); line(198, 205+sin(millis()/350)*2, 202, 205+sin(millis()/350)*2); noStroke(); //toy fill(0); ellipse(269, 201, 15, 15); ellipse(269, 217, 7, 7); stroke(0); strokeWeight(3); line(269, 201, 269, 217); noStroke(); fill(0); ellipse(131, 201, 15, 15); ellipse(131, 217, 7, 7); stroke(0); line(131, 201, 131, 217); noStroke(); strokeWeight(2); } } if (fed == true && play == true && coloractive == true && love == true && fat == false) { //activates evolve option once you've tried all the things as long as your buddy didn't die canevolve = true; fill(255); ellipse(348, 376, 15, 15); triangle(350, 380, 350, 372, 370, 376); } else if (evolved == true); { //if everything is wrong, check if you can be a frog frog(); } } void frog() { if (evolved == true) { //draws frog fill (tadColorR, tadColorG, tadColorB); ellipse(200, 220+cos(millis()/350)*1.5, 50, 70); ellipse (200, 190+cos(millis()/350)*1.5, 70, 40); ellipse (220, 180+cos(millis()/350)*1.5, 30, 30); ellipse (180, 180+cos(millis()/350)*1.5, 30, 30); rect (160, 210+cos(millis()/350)*1.5, 240, 220+cos(millis()/350)*1.5); rect (150, 245+cos(millis()/350)*1.5, 250, 250+cos(millis()/350)*1.5); rect (160, 240+cos(millis()/350)*1.5, 240, 250+cos(millis()/350)*1.5); rect(140, 250+cos(millis()/350)*1.5, 150, 230+cos(millis()/350)*1.5); rect(250, 250+cos(millis()/350)*1.5, 260, 230+cos(millis()/350)*1.5); ellipse (160+cos(millis()/350)*1.5, 210+cos(millis()/350)*1.5, 20, 20); ellipse (240+cos(millis()/350)*1.5, 220+cos(millis()/350)*1.5, 20, 20); fill(255); ellipse (220, 180+cos(millis()/350)*1.5, 20, 20); ellipse (180, 180+cos(millis()/350)*1.5, 20, 20); fill(0); rect(180, 200+cos(millis()/350)*1.5, 220, 202+cos(millis()/350)*1.5); ellipse (215+(mouseX/35), 175+cos(millis()/350)*1.5+(mouseY/35), 5, 5); ellipse (175+(mouseX/35), 175+cos(millis()/350)*1.5+(mouseY/35), 5, 5); //restart button fill(255,0,0); stroke(0); strokeWeight(2); rect(195, 315, 205, 325); noStroke(); } } void mousePressed() { //first button, feed if (mouseX > 30 && mouseX < 68 && mouseY > 358 && mouseY < 394) { fed = true; foodcount += 1; //second button, play } else if (mouseX > 105 && mouseX < 143 && mouseY < 394 && mouseY > 358) { play = true; //third button, change color } else if (mouseX > 181 && mouseX < 219 && mouseY > 358 && mouseY < 394) { coloractive = true; for (int colorpick = 0; colorpick < 3; colorpick = colorpick + 1) { tadColorR = random(0, 255); tadColorG = random(0, 255); tadColorB = random(0, 255); } //fourth button, give love } else if (mouseX > 257 && mouseX < 295 && mouseY > 358 && mouseY < 394) { love = true; //last button, evolve your tadpole if it is allowed } else if (mouseX > 333 && mouseX < 371 && mouseY > 358 && mouseY < 394 && canevolve == true) { evolved=true; //resets scene } else if (mouseX> 195 && mouseX< 205 && mouseY > 315 && mouseY < 325 && evolved == true){ evolved = false; canevolve = false; fed = false; play = false; coloractive = false; love = false; foodcount = 0; tadColorR = 40; tadColorB = 90; tadColorG = 240; } }