Project 6 Description


Fully functional display


Status string display (similar to HEditor)
Some status text along the bottom of the screen will be necessary to give feedback such as current velocity and rotational direction.

Creativity
Creativity points will be based on the ingenuity of your movement interface.

Extra Credit: Smooth row addtion
For extra credit, implement the terrain translation using clipping planes to give the effect of a terrain moving towards you. This will need to be implemented for -x, +x, -z, and +z.


The process I would go through to implement this project:

  1. First get your map viewing area displaying in a dynamic fashion. Meaning, given [row, column] coordinates, you can automagically display the surrounding viewing area (be careful when you are at the edge of your map).
  2. Next I would implement some keys on the keyboard which will move the [row, column] coordinates. [row, column] represent the index into the map array. This means, you will simply be redrawing the map each time you hit a direction key with a different set of tiles displayed around the origin.
  3. After this, it would be time for the mouse movement. I would implement this with the mouse location giving the current speed and direction. For this simple case, speed would be the amount to increment or decrement row and/or column. Direction would determine whether to increment or decrement row and/or column.
  4. Once the above is working you can start looking into optimizing and smoothing out your translation of the viewable map area. Start by making the mouse function you just wrote incrememnt and decrement some translation values (x and/or z). This will slowly move the terrain in the direction it should be moving. Once you have enough room for another row or column (depending on direction), add one in the direction you're going and take one away in the other direction. This will make new terrain "pop" into view and old terrain "pop" out.
  5. Finally, if you choose to do the extra credit, set up clipping planes so that as you translate your terrain one direction or the other the new terrain will appear very smoothly (as it moves through the clipping plane) and the old terrain will disappear smoothly as it moves into its clipping plane.