CS559
Fall 2003
 

Sample Code For Project 3

Note: this is not a complete project, just snippets of the example so you can get some ideas as to how it works. The complete source code is available as an ZIP archive. Remember, there are rules in using the example program.

Two pieces are probably directly useful: my texture manager (see the texture hints page), and a set of matrix routines (MMatrix.H and MMatrix.cpp). There are some basic drawing utilities too (DrawUtils.H and DrawUtils.cpp).

The two key classes for the project:

  • GrObject - The base class for all objects in the world. Described in GrObject.H. The main thing that is interesting would be the design of objects. You can look at the implementation too (GrObject.cpp), but it is pretty specific, and may not be too easy to understand.
  • Behavior - The base class for thinks that move objects around. Described in Behaviors.H. (you can look at Behaviors.cpp, but its not too interesting)

For some specific examples, you can see my code for...

  • Cars (Cars.H Cars.cpp) - draws very simple cars.
  • Houses (Houses.H, Houses.cpp) - draws some simple buildings
  • Drive (Roads.H, Drive.cpp) - this is a rather complex behavior that implements a network of roads. cars drive around, Stop at the stop signs, ...
    Everything is very random, cars do not avoid rear-ending one another (they always drive on the right side of the road, so there are no head-ons), all intersections are 4-way stops, and turns aren't very realistic.
    Be warned: this is pretty ugly code, and is pretty complicated. View it as an advanced example.

Note: you may use my code for your projects. Be sure to give proper attribution (e.g. a comment at the beginning saying where you got the code, what you did to it, ...).