Parameter Settings for Project 1
--------------------------------

This file contains various numeric parameter settings used in our
project. You are welcome to use these values in your program, but you
are encouraged to experiment with different values as well. (Remember
that, if you make use of any external resources, you must cite them in
your ReadMe file. Since this is not really external, you do not need to
cite this information.)

If any values appears to be missing, feel free to check with me.

Dave


Window and Drawing Canvas:
--------------------------
Initial window size (width x height): 400 x 600

Drawing Canvas Size: 400 x 600 (1 unit = 1 pixel)

Colors:
-------
Background (Clear) Color (RGB):
  If playing: (1, 1, 1) White
  If lost:    (0, 0, 0) Black

Text (after losing):
  Color (RGB): (1, 1, 0) Yellow
  Font: GLUT_BITMAP_HELVETICA_18

Bubble colors (RGB):
  (1, 0, 0) : red
  (0, 1, 0) : green
  (0, 0, 1) : blue
  (0, 1, 1) : cyan
  (1, 0, 1) : magenta
  (1, 1, 0) : yellow


Keyboard Input:
---------------
  'f': toggle full screen mode (see glutFullScreen)
  't': enable/disable target assist
  'r': restart game
  'q' or Esc (ASCII code 27): quit

Mouse Input:
------------
Left button down - shoot a bubble

A shot is "unproductive" if no bubbles are destroyed. After 6
unproductive shots, the bubbles all drop down one level.

Bubble Cannon:
--------------
The cannon is located at the bottom center of the window, and points
towards the cursor.

  Color (RGB): (0.25, 0.25, 0.25) : gray
  Width: 5 units
  Length: 50 units

Bubbles:
--------
Bubbles are drawn as regular polygons (GL_POLYGON).

  Number of sides: 12
  Radius: 8 units
  Speed: The bubble shot from cannon moves at 1000 units per second

Falling Bubbles:
----------------
When bubbles are blown off the board, their initial speed is 200 units
per second. Their initial direction is a random angle between 45 to 135
degrees (where the horizontal axis is 0 degrees).

The state of a falling bubble is updated as follows. Let elapsed_time
denote the time (in seconds) since the last update (determined, e.g.,
using a system function like ftime).

  velocity.y = velocity.y - (1000 * elapsed_time)
  position = position + (velocity * elapsed_time)
