Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
///////////////////////////////////////////////
//               40 Seconds                  //
//           By:Wun Richard Hui              //
//               991 444 823                 //
///////////////////////////////////////////////
//   Player clicks on as many squares        //
//       as they can in 40seconds.           //
///////////////////////////////////////////////

///////////////////////////
//Random object variables//
///////////////////////////
int rectX= 200;
int rectY=200;
///////////////////////////
//Random color variables //
///////////////////////////
int randomR=200;
int randomG=0;
int randomB=20;
///////////////////////////
//    Score variable     //
///////////////////////////
int score = 1;
///////////////////////////
//    Time Variable      //
///////////////////////////
float time = 40;

//////////////////////////////////////////////
//              Basic setup                 //
//////////////////////////////////////////////
//       No cursor, larger canvas           //
//////////////////////////////////////////////
void setup() {
  noCursor();
  size (600, 600);
  rectMode(CENTER);
  noStroke();
}
void draw() {
  drawBkgd();
  drawTarget();
  drawRound();
  drawPlayer();
  title();
  timer();
}
//////////////////////////////////////////////
//             Timer in the bottom          //
//////////////////////////////////////////////
void timer() {
  ////timer bar//////////////////////////////////////////////////
  fill(0, 80);
  rect( width/2, height, time*15, height/10);
  ////timer text/////////////////////////////////////////////////
  text(time, width/2.5, height);
  time -= (0.016666);
  ////gameover trigger///////////////////////////////////////////
  if (time<=0.09) {
    gameOver();
  }
}
//////////////////////////////////////////////
//             GameOver Scene               //
//////////////////////////////////////////////
void gameOver() {
  //////////Gameover Screen Art////////////////////////////////// 
  fill(0);
  rect(width/2, height/2, width, height);
  fill(randomB, randomG, randomR);
  rect(width/2, height/3, width, height/2);
  fill(randomB, randomG, randomR);
  rect(width/2, height, width, height/2);
  ////////////Score text/////////////////////////////////////////
  fill(randomR, randomB, randomG);
  textSize(50);
  text("Your Score: "+(score-1), width/3, height/(1.4));
}
///////////////////////////////////////////////////////////////

///////////////////////////////////////////////
//                  Game UI                  //
///////////////////////////////////////////////
void drawRound() {
  //Top bar//////////////////////////////////////////////////////
  fill(200, 90);
  rect(0, 0, width*2, height/5);
  //Round text///////////////////////////////////////////////////
  fill(randomB, randomR, randomG);
  textSize(40);
  text ("ROUND "+(score-1), 20, 40);
}

///////////////////////////////////////////////
//                Game Object                //
///////////////////////////////////////////////
void drawTarget() {
  fill(randomG, randomB, randomR);
  ///Target grows smaller as round increase///////////////////////
  rect(rectX, rectY, width/(score), height/(score));
}
///////////////////////////////////////////////
//            Player Interaction             //
///////////////////////////////////////////////
void mousePressed() {
  if (mouseX<rectX+width/(score) && mouseX>rectX-width/(score)&& 
    mouseY<rectY+width/(score) && mouseY>rectY-width/(score)) {
    score= score+1;
    //Move the object when player clicks on it//////////////////////
    rectX= (int) random(1, 11)*50;
    rectY= (int) random(1, 11)*50;
    //Give new colors when player clicks on it//////////////////////
    randomR =  (int) random (0, 255);
    randomG =  (int) random (0, 255);
    randomB =  (int) random (0, 255);
  }
}
////////////////////////////////////////////////
//             Game Instructions              //
////////////////////////////////////////////////
void title() {
  fill(255);
  text("Click the Square!", (width/3)*score, (height-50)*score);
}
////////////////////////////////////////////////
//              Background                    //
////////////////////////////////////////////////
void drawBkgd() {
  fill(randomR, randomG, randomB);
  rect(width/2, height/2, 600, 600);
}
////////////////////////////////////////////////
//               Player                       //
////////////////////////////////////////////////
void drawPlayer() {
  fill(randomG, randomB, randomR);
  rect(mouseX, mouseY, 20, 20);
}
////////////////////////////////////////////////
////////////////////END/////////////////////////
////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////
//                                          References                                         //
/////////////////////////////////////////////////////////////////////////////////////////////////
//Score Count                                                                                  //
//http://www-acad.sheridanc.on.ca/PROG14998/lab-02/lab_02_62/index.html                        //                  
//mouse click collision detection                                                              //
//http://www-acad.sheridanc.on.ca/PROG14998/2015/interactive-toy/interactive_toy_18/index.html //
//Timer                                                                                        //
//http://www-acad.sheridanc.on.ca/PROG14998/lab-02/lab_02_20/index.html                        //
/////////////////////////////////////////////////////////////////////////////////////////////////