//Shannon Umerez 991514126
//Interactive toy project
//* -->click the mouse to eat the circle and grow
//* -->once you get too big, you change characters and settings
//variables
//Location of moving pebble
int x = 400;
//Size of creature
int creatureSize = 50;
int sunX = 50;
int sunY = 50;
//variables to make sun rays move
int sunRayX = 90;
int sunRayY= 35;
int cloudSpeed = 0;
int creature = 1;
//seaweed movement
float sw = 400;
float starPositionX;
float starPositionY;
void setup(){
//set size of screen
size(400,400);
}
void draw(){
//set backgroud to white
//set framerate to 60 frames per second
frameRate(60);
rectMode(CENTER);
smooth();
drawBackground();
drawSun();
drawCreature();
drawCircle();
//if cirles is at less than 0 then reset on other side of screen
if (x<0){
x=400;
}
//variable to make seaweed move from right to left
//once reaches end of screen then resets
if (sw<=0){
sw=400;
}
//if cloud is more than the screen then reset to other side
if (cloudSpeed>400){
cloudSpeed=0;
}
}
///draww backgrounds according to creature///
void drawBackground(){
background(175,238,238);
//change backgrounds according to creature type
if (creature==1){
//make the grass tirange background
fill(50,205,50);
for(int q = 10;q < 400; q+=20){
triangle(q,160,q-10,width/2,q+10,width/2);
}
//second row of triangles
fill(107,142,35);
for(int i = 0; i < 400; i+=20){
triangle(i, 170, i-10,width/2,i+10,width/2);
}
rect(width/2, 300, 400, 200 );
drawSun();
drawClouds();
}
else if (creature==2){
background(0);
fill(34,139,34);
//make the grass tirange background
for(int w = 10;w < 400; w+=20){
triangle(w,160,w-10,width/2,w+10,width/2);
}
//second row of triangles
fill(107,142,35);
for(int i = 0; i < 400; i+=20){
triangle(i, 170, i-10,width/2,i+10,width/2);
}
rect(width/2, 300, 400, 200);
drawSun();
drawClouds();
//draw stars
fill(255);
ellipse(30,100, 3+sin(frameCount), 3+sin(frameCount));
ellipse(50,60, 3+sin(frameCount),3+sin(frameCount));
ellipse(70,90, 3+sin(frameCount),3+sin(frameCount));
ellipse(100, 20, 3+sin(frameCount),3+sin(frameCount));
ellipse(115,30, 3+sin(frameCount),3+sin(frameCount));
ellipse(124, 80, 3+sin(frameCount),3+sin(frameCount));
ellipse(130, 70,3+sin(frameCount),3+sin(frameCount));
ellipse(120, 100, 3+sin(frameCount),3+sin(frameCount));
ellipse(110, 150, 3+sin(frameCount),3+sin(frameCount));
ellipse(200, 90,3+sin(frameCount),3+sin(frameCount));
ellipse(198, 170, 3+sin(frameCount),3+sin(frameCount));
ellipse(150, 150, 3+sin(frameCount),3+sin(frameCount));
ellipse(140, 140,3+sin(frameCount),3+sin(frameCount));
ellipse(145, 100, 3+sin(frameCount),3+sin(frameCount));
ellipse(230,100, 3+sin(frameCount), 3+sin(frameCount));
ellipse(250,60, 3+sin(frameCount),3+sin(frameCount));
ellipse(270,90, 3+sin(frameCount),3+sin(frameCount));
ellipse(300, 20, 3+sin(frameCount),3+sin(frameCount));
ellipse(315,30, 3+sin(frameCount),3+sin(frameCount));
ellipse(224, 80, 3+sin(frameCount),3+sin(frameCount));
ellipse(230, 70,3+sin(frameCount),3+sin(frameCount));
ellipse(220, 100, 3+sin(frameCount),3+sin(frameCount));
ellipse(310, 150, 3+sin(frameCount),3+sin(frameCount));
ellipse(300, 90,3+sin(frameCount),3+sin(frameCount));
ellipse(398, 170, 3+sin(frameCount),3+sin(frameCount));
ellipse(350, 150, 3+sin(frameCount),3+sin(frameCount));
ellipse(340, 140,3+sin(frameCount),3+sin(frameCount));
ellipse(345, 100, 3+sin(frameCount),3+sin(frameCount));
}
else if (creature==3){
//fish background bubbles
rectMode(CORNERS);
fill(127,255,212);
rect(0,100+sin(frameCount*.025),400,150);
fill(64,224,208);
rect(0,150+sin(frameCount*.25),400,400);
fill(46,139,8);
for(int w = 10;w < 400; w+=20){
triangle(w,380,w-10,height,w+10,height);
}
drawSeaweed();
}
}
//draw moving coulds//
void drawClouds(){
//draw clouds that move accross screen
fill(255);
noStroke();
ellipse(cloudSpeed+10, 30, 50,20);
ellipse(cloudSpeed,15, 30,22);
ellipse(cloudSpeed-5,40, 40,30);
cloudSpeed= cloudSpeed+1;
}
void drawSun(){
//if creature 1 is shown then draw shining sun
if (creature==1){
fill (255,255,0);
noStroke();
ellipse(sunX,sunY, 70,70);
//makes rays move
triangle(sunRayX, sunRayY,sunRayX, sunRayY+30, sunRayX+30+(1*sin(frameCount)), sunRayY+15+(1*sin(frameCount)));
triangle(sunRayX-25,sunRayY+55, sunRayX-55,sunRayY+55,sunRayX-40+(1*sin(frameCount)), sunRayY+80+(1*sin(frameCount)));
}
//if creature 2 is show then draw moon
else if(creature==2){
fill(250,240,230);
noStroke();
ellipse(sunX,sunY, 70,70);
fill(220,220,220);
ellipse(sunX+10,sunY+20,10,10);
ellipse(sunX-10,sunY-27,15,10);
ellipse(sunX+5,sunY+5,15,20);
}
}
void drawSeaweed(){
//draw my seaweed
fill(46,139,8);
triangle(sw, 400, sw-10,400, sw-5,350);
triangle(sw-5,350,sw-10,320,sw,320);
triangle(sw-9,320,sw,325,sw+12,300);
triangle(sw,400,sw-5,400,sw+10,360);
triangle(sw+10,360, sw+15,340, sw+15,306);
triangle(sw,400,sw-10,400,sw-15,365);
triangle(sw-15,365,sw-13,350,sw-10,355);
//move left 1 pixel each screen (60 a sec)
sw = sw-1;
}
void drawCircle(){
//draw moving circle to eat
fill(0);
stroke(123);
ellipse(x,height/4*2.5,20,20);
x = x-3;
}
//draw my creature//
void drawCreature(){
//draw spider
if(creature==1){
rectMode(CENTER);
fill(0);
ellipse(width/4, height/4*2.5, creatureSize,creatureSize);
noFill();
stroke(2);
//right side legs
line(width/4+10,height/4*2.5-5, 150,230);
line(150,230,170,250);
line(width/4+10,height/4*2.5,153,240);
line(153,240,175,260);
line(width/4+10,height/4*2.5,160,250);
line(160,250,180,270);
//left side legs
line(width/4-10,height/4*2.5-5,50,230);
line(50,230,35, 250);
line(width/4+10,height/4*2.5,46,240);
line(46,240,30,260);
line(width/4+10,height/4*2.5,43,250);
line(43,250,25,270);
//sports wear
fill(148,0,211);
rect(width/4,height/4*2.5-7,creatureSize,creatureSize/3);
//face
fill(255);
ellipse(width/4-10,height/4*2.5, 20,20);
ellipse(width/4+10,height/4*2.5,10,10);
}
//draw ET
else if(creature==2){
rectMode(CORNERS);
fill(160,82,45);
rect(100,200,150,210);
rect(150,210,140,215);
rect(95,205,110,270);
rect(95,270,130,275);
rect(130,245,120,265);
rect(120,265,140,270);
ellipse(120,237,creatureSize-10,creatureSize-10);
}
//draw fish
else if(creature==3){
fill(255,165,0);
stroke(1);
triangle(127,240,60,260+sin(frameCount),60, 220+sin(frameCount));
triangle(160,220,150,210,120,220);
ellipse(145,240,creatureSize*2,creatureSize);
triangle(155,240,135,230,140,250);
fill(255);
ellipse(180,240,10,10);
}
}
void mousePressed(){
//if circle is at square and mouse is pressed than reset the circle
//increase the size of square
//size +50 each time it eats circle
//conditional!!!
if(x <= width/4 + 60 && x >= width/4 - 50){
x= 600;
creatureSize = creatureSize +5;
}
//if the size of square is greater than or equal to 65 than "blow up"
if (creatureSize >= 65){
frameRate(1);
background(0);
//every time size reaches 65, reset to 50 and add one to creature
creatureSize = 50;
creature = creature+1;
}
//if no more creature reset
if(creature>3){
creature = 1;
}
}