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. You can try the sample executable.
Or read about the project. 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
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...
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, ...).
- 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.