/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://studio.sketchpad.cc/sp/pad/view/ro.dwajqVDWnFC/rev.6
 * 
 * authors: 
 *   GoToLoop
 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 
/**
 * Paused Countdown (v2.0)
 * by GoToLoop (2014/Jun)
 *
 * forum.processing.org/two/discussion/5650/timing-component-for-game
 *
 * studio.processingtogether.com/sp/pad/export/ro.9Djm2xo4wna7I/latest
 */
static final color FG = #D0A000, BG = 0;
static final int TEXT_SIZE = 0100, QUALITY = 4;
static final int FPS = 60, TIMING = 1*FPS*60 + 60;
int timeup = TIMING;
boolean isPaused, isGameOver;
// ...
void setup() {
  size(800, 600, JAVA2D);
  smooth(QUALITY);
  frameRate(FPS);
  textSize(TEXT_SIZE);
  textAlign(CENTER, CENTER);
  fill(FG);
  // ...
}
void draw() {
  if (isPaused | isGameOver) {
    text(isGameOver? "Game Over" : "Game Paused"
      , width>>1, height>>2);
    noLoop();
    return;
  }
  background(BG);
  final int countdown = (timeup-frameCount)/60 | 0;
  if (countdown == 0)  isGameOver = true;
  text("Countdown: " + countdown, width>>1, height>>1);
  // ...
}
void keyPressed() {
  final int k = keyCode;
  if (!(isPaused ^= k == 'P'))  loop();
  // ...
}