👌 SNAP Final Project

🤖 Overview

Platform games are among the most widely recognized types of video games. Composing about one third of all console games at the peak of their popularity, platform games are characterized by their relative simplicity and by the common gameplay element of jumping across suspended platforms (hence the name) to avoid falling into a hazard. Platform games also typically include enemy characters, items that grant the hero special abilities (“power-ups”), and a “checkpoint” system that allows the player to restart from partway through a game or level when he or she dies.


1⃣ Hero Your program should have a “Hero” sprite. You will be designing this character (a simple stick figure will suffice, if your art skills are like mine). “Hero” should respond to user input. Specifically:

2⃣ Scenery You should have scenery sprites that move based upon “Hero” traveling on the level. It is up to you to decide the level scenery, but you should meet the following requirements:

3⃣ Enemy There should be an on-ground enemy for “Hero” to contend with. Specific criteria here include:


I am looking for you to incorporate good programming habits in your code:

Extensions (for the 4⃣!)

Once you complete the above, you can extend your program. Some suggestions:


The detailed list for what I will use to grade your projects is below. Please review your projects before submitting to be sure you meet all of them.

Requirement Value
“Hero” turns to the right on right arrow key 5
“Hero” turns to the left on left arrow key 5
“Hero” performs an in-place animated walk if you hold down either arrow key 5
“Hero” jumps based on some input 5
There are least two scenery sprites 5
Scenery sprites are layered with “Hero” (e.g. appropriate layering blocks are in your program) 5
Scenery sprites move based on “Hero” movement 5
Scenery sprites move at different speeds (e.g. far away versus near) 5
Scenery sprites roll over when the fall of the stage 5
There is at least one on-ground enemy 5
Enemy sprite always moves towards “Hero” 5
Enemy sprite re-appears/rolls over correctly 5
Enemy sprite is animated when it moves 5
If “Hero” does not jump, she runs into the enemy and the game ends nicely and properly 10
“Hero” can jump over the enemy 5
Good programming #1: Program has clear start and stop 5
Good programming #2: Program is repeatable and initializes state correctly 5
Good programming #3: Use of comments in your code 5
Good programming #4: Use conditionals and variables, not precisely timed waits. 5
Extra Credit: Include flying enemies for “Hero” to dodge or duck 5
Extra Credit: Keep score based on how many objects “Hero” gets by 5
Extra Credit: Have “Hero” jump to ‘grab’ an object that offers “Hero” extra points or more powerful abilities. The objects must appear at random times and move smoothly as “Hero” runs 10
Extra Credit: Create Your Own Extension 0-10