/*assignment 2: interactive toy Phone by Vivian Ha Pick up the phone by clicking on it*/ //declare variables int xPos = 0; int yPos = 0; boolean phoneClicked = false; void setup() { size(400, 400); noStroke(); rectMode(CENTER); background(235); } void draw() { //change if phone clicked if (phoneClicked) { drawPhone(width/3, height/2); drawDots(width/3, height/2); //grey block to cover drawRinging fill(235); rectMode(CORNER); rect(width/2-15, 0, 100, height); rectMode(CENTER); } else { drawPhoneRinging(width/3, height/2); drawRinging(width/3, height/3); } } //////////FUNCTIONS////////// void drawPhoneRinging(int xPos, int yPos) { //PHONE BASE// //phone base (long rectangle) //phone base colour fill(255, 98, 129); rect(xPos, yPos, 70, 130); //phone base (wide rectangle) rect(xPos, yPos, 80, 120); //PHONE SCREEN// //phone screen (long rectangle) //phone screen colour fill(245, 224, 228, random(150, 255)); rect(xPos, yPos-10, 50, 90); //phone screen (wide rectangle) rect(xPos, yPos-10, 60, 80); //PHONE BUTTON// //phone button colour fill(255); rect(xPos, yPos+50, 8, 8); } void drawRinging(int xPos, int yPos) { //RINGING WAVE 1// //ringing wave 1 colour fill(175, 40, 67); //ringing wave 1 (horizontal line) rect(xPos+60, yPos-20, 16, 8); //ringing wave 1 (vertical vertical) rect(xPos+64, yPos-16, 8, 16); //RINGING WAVE 2// //ringing wave 2 colour fill(199, 58, 86); //ringing wave 2 (horizontal line) rect(xPos+80, yPos-45, 23, 8); //ringing wave 2 (vertical line) rect(xPos+90, yPos-37, 8, 23); //RINGING WAVE 3// //ringing wave 3 colour fill(233, 117, 140); //ringing wave 3 (horizontal line 1) rect(xPos+100, yPos-70, 30, 8); //ringing wave 3 (vertical line 1) rect(xPos+109, yPos-66, 8, 16); //ringing wave 3 (horizontal line 2) rect(xPos+115, yPos-62, 16, 8); //ringing wave 3 (vertical line 2) rect(xPos+119, yPos-53, 8, 30); } void drawPhone(int xPos, int yPos) { //PHONE BASE// //phone base (long rectangle) //phone base colour fill(255, 98, 129); rect(xPos, yPos, 70, 130); //phone base (wide rectangle) rect(xPos, yPos, 80, 120); //PHONE SCREEN// //phone screen (long rectangle) //phone screen colour fill(245, 224, 228); rect(xPos, yPos-10, 50, 90); //phone screen (wide rectangle) rect(xPos, yPos-10, 60, 80); //PHONE BUTTON// //phone button colour fill(255); rect(xPos, yPos+50, 8, 8); } void mousePressed() { //when mouse pressed in phone screen area, state of button toggled if (mouseX >= width/3-40 && mouseX <= width/3+40 && mouseY >= height/2-60 && mouseY <= height/2+40) { phoneClicked = !phoneClicked; } } //declare drawDots variables int dotX = width/3; int dotY = height/2; int dotSpacing = 10; void drawDots(int xPos, int yPos) { fill(228, 178, 188); for (int dotX = width/3; dotX < width/3+30; dotX += dotSpacing) { rect(dotX-9,dotY+130,6,6); } }