CS2 Project 5: Graphics and Events

Due: Thursday Dec 13th at 11:59pm (this is reading day).


Summary:
You will build a simplified version of the old (or shall we say "classic") Arcade game sometimes called Galaga and sometimes Galaxian. (there were subtle differences but they were essentially the same game).

For those of you who haven't seen the refresh on a portable game device, the game looks something like the one below:

Galaxian Screen Grab

Players control a ship which is at the bottom of the screen. Players can only move the screen horizontally back and forth. The ship can fire some sort of shot at the enemies at the top of the screen.

The enemies will move back and forth horizontally while staying within their rows. Occasionally one of them will fire down the screen in hopes of hitting the players ship. Once in a while on of the attacking enemies will break formation and dive down the screen as well.


Project Details:

In your project you will write a simple one level galaga/Galaxian clone. 

I have made a set of images available to you. Refer to class discussion for location.
I'll also recommend some starting points and progression in completing this project in class.

Extra Credit:

Extra credit is available for this project for those who have finished the above required parts of the project. (if enough of the actual project is not finished, you will not be eligible to be graded for the extra credit) This final project will be worth 200+ points (making your 70 point first project small potatoes in comparison). This will give you a feel for how the extra credit is weighted. You may do any, all or none of the extra credit options below. Be sure to tell me (in the readme file) if you did do any so you can get credit for them.
  1. Add sound effects (20pts) add  a different sound for each of the following:
    1.  when firing,
    2. when an enemy or player ship gets killed
    3. When the player wins
    4. When the player loses
  2. Add a kamikaze enemy (15pts)
    1. occasionally, one of the enemies tries to dive bomb the player.
  3. Add an extra "life" bonus (15pts)
    1. Add a mechanism to gain an extra life - either through score or as a special enemy. Be sure to inform the user graphically or via audio (if you did part 1 above) about the extra life.

Additional Restrictions:

   I am placing the following restrictions on you to encourage you to practice good software design.
  1. You must comment your code, each method at least must contain a comment describing what the method does. If the method is more complicated, additional comments are appropriate.
  2. No method may be more than 30 lines long
  3. No single class can be more than 200 lines long.
  4. make sure you increase cohesion: that is each class should represent a single concept.

When your program is ready, you need to write a readme.txt file that provides me the following information:



When your readme and your code is ready, zip up your files and submit them online as you have done for the other labs