/* Help spongebob put his glasses on! When the timing is right, press space to gain a point and reach the next speed difficulty. Try to beat your high score. By: Alice (Yi Yang) Peng */ //setting up void setup() { // setting up the canvas size(400, 400); ellipseMode(CENTER); frameRate(60); noStroke(); //intro text for player print("press space when the glasses are just right! highscore is",highscore, "\n"); } // global variables float gY =0; //used to keep track of the glasses location int score = 0; // the score float speed = 2; // the speed int highscore = 0; // keeps the high score float randy = random(-50,100); // grabs a random y location to place the glasses at // a function for drawing the background void drawBackground(){ // setting up the canvas background(254, 245, 108); showScore(); ellipseMode(CENTER); noStroke(); fill(186,189,22); // variables used for drawing the background pattern int countx = 5 ; int county = 5; int gridX = 40; int gridY = 40; // a loop to draw the background pattern using circles while(county>0){ // nested loop to save time and create a board of circles while(countx>0){ ellipse(gridX,gridY,40,40); gridX = gridX + 80; countx = countx -1; } // resetting some variables gridX = 40; gridY = gridY + 80; countx =5; county = county-1; } } // a function to draw the eyes void eyes() { // setting up canvas ellipseMode(CENTER); stroke(0); strokeWeight(3); // using circles to draw eyes // eyelashes fill(0); // left eye line(120, randy+200, 120, randy+120); line(120, randy+200, 160, randy+130); line(120, randy+200, 80, randy+130); //right eye line(280, randy+200, 280, randy+120); line(280, randy+200, 320, randy+130); line(280, randy+200, 240, randy+130); // white of the eyes fill(255); ellipse(120, randy+200, 120, 120); ellipse(280, randy+200, 120, 120); // blue fill(63, 198, 245); ellipse(130, randy+200, 50, 50); ellipse(270, randy+200, 50, 50); // black pupils fill(0); ellipse(130, randy+200, 35, 35); ellipse(270, randy+200, 35, 35); } // a function to draw the glasses void drawGlasses() { // setting up canvas strokeWeight(10); rectMode(CORNERS); noFill(); stroke(0); //frames rect(40, gY-140, 190, gY-270); rect(210,gY-270,360,gY-140); //wires line(40,gY-200,0,gY-200); line(190,gY-200,210,gY-200); line(360,gY-200,400,gY-200); // using the speed variable to move the glasses down gY = gY + speed; // if the glasses go out of the screen, bring it back to the top if (gY >=670){ gY = -150; } } // function to keep track of the score void showScore(){ // setting up canvas rectMode(CORNERS); int a =0; int x1 = 20; // creating the little blocks that represent score while(a<score){ fill(0); rect(x1,20,x1+10,30); a = a + 1; x1 = x1 + 40; } } // function for if a key is pressed void keyPressed(){ // checking if it is space if(keyCode==32) { // checking if the glasses and eyes line up if(gY>= (randy+400-40) && gY<= (randy+400+30)){ score = score+1; speed= speed + 1.2; gY =0; randy = random(-50,100); // if they don't line up, clears score and prints high score }else{ if(score>highscore){ highscore=score; print("NICE! New highscore is",highscore,"\n"); }else{ // if there is no high score, prints "try again" print("try again \n"); } // resetting some variables for start over score = 0; speed = 2; } } } // the draw function that "wraps" everything up! void draw() { // required functions for game to run drawBackground(); eyes(); drawGlasses(); showScore(); } // end of code