| 
		
 | 
     
      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, ...). |