Project 4
CS 320
75 points, due Apr. 22, 2005
Design a small maze, based on several rooms that fit into a grid. (Rooms will be simpler to deal with than hallways.)
Optionally, we can discuss generalizing the 2-D maze. Your display should
provide a small overhead view (with some indication of what direction the
viewer is looking toward) and an immersed view. As mentioned earlier, it
would be ``really cool'' to be able to drag the overhead view around. An
alternative (probably better) would be to create a second window for this
view. Put a few obstacles in each room as well as using two balls
(spheres) which roll around the maze. Here are some design parameters:
- Modular design and literate documentation. Documentation should
include a user guide, explaining how to play the game.
- Your collision detection and rendering should be ``smart,'' as we'll
discuss.
- Minimize the number of ``building'' blocks used. Use display lists
as much as possible.
- Movement:
- Up arrow: forward one unit.
- Down arrow: backward one unit.
- Left arrow: rotate left 1/16th of a turn.
- Right arrow: rotate right 1/16th of a turn.
(To eliminate floating point round-off errors, store the rotation position
as a small integer and convert that to radians as necessary.)
You may modify the keys assigned to movement and add additional keys to
follow gaming conventions. Make sure to document this in your user guide!
- Include a ``zombie'' which slowly and weakly follows the viewer. If
the zombie ever collides with the viewer, the ``game'' is over. The zombie
should have the general shape of a human and has the power to pass through
walls.
Thomas P. Kelliher
Sat Apr 9 12:51:02 EDT 2005
Tom Kelliher