Goal: finish up and extend Circles/Boomshine.
Requirements and Grade Rubric
- (30%) The game should be over when a level is beaten and
numCircles
reaches a certain value (the original Boomshine stops at 60). Add a Game Over screen that will display the players final score and gives them the opportunity to play again. See screenshot(s) below for an example.
Hints:- Add
GAME_STATE_END
andNUM_CIRCLES_END
globals - In the code that checks if the level is over, check to see if the game is also over, and if so, change the
gameState
toGAME_STATE_END
. - Add a conditional in
drawHUD()
that will draw a game over screen - Add a conditional in
doMouseDown()
that restarts the game. Don't forget to reset thegameState
,totalScore
, andnumCircles
variables. - You'll also need to make a change to
drawCircles()
to make sure the remaining circles are drawn at a lower opacity duringGAME_STATE_END
- Add
- (30%) There will be a minimum score required on each level in order to progress to the next level. It can be a fixed percentage of
numCircles
, or a value that is hard-coded on a per-level basis.
Hints:- Add
GAME_STATE_REPEAT_LEVEL
,NUM_CIRCLES_LEVEL_INCREASE
andPERCENT_CIRCLES_TO_ADVANCE
globals - In the code that checks if the level is over:
// if the level is over
if(roundScore < Math.floor(numCircles * PERCENT_CIRCLES_TO_ADVANCE)){
gameState = GAME_STATE_REPEAT_LEVEL;
} else {
...
} - Continue on the same lines as was done in #1 above
- Add
- (30%) Sound
- A background sound that loops.
- One or two other effect sounds. DON'T do sounds for every wall hit or explosion - instead play a sound when the circles target is reached, and/or when a new level is loaded.
- DO NOT use the sounds that were given to you in class.
- (Up to 10%) Enhancements
Ideas for enhancements
- Hard-coded level values for color, number of circles per level, and ???.
- Add a
currentLevel
global and then look up game data based on the level. The game data is stored in alevels
global, which is an array of objects (see screenshot below). - Use this game data to add features to the game.
- Add a
- High Score Screen
- Clone Boomshine - clicking creates a new exploding circle, text fades in and out, vector movement of circles, "screen flare" when level target is reached, ...
- ??? - but no Blockshines or Heartshines will be counted as an enhancement.
Submission
- ZIP up and post to dropbox before due date. This is worth 7% of final grade.
- For grading purposes, the submitted version should have only 3 levels before the game is over. Hopefully this is easy for you to do by altering
NUM_CIRCLES_END
- Document that you met the 3 major requirements, and be specific about any enhancements you did. Paste this into the comments field of the dropbox.