Game Components
XNA has a really nice way to integrate different logical pieces of code (such as
your soon-to-be-created SpriteManager class) into
your application. The GameComponent class allows
you to modularly plug any code into your application and automatically wires that
component into the game loop's Update call (i.e.,
after your game's Update call is made, all
associated GameComponent classes have their
Update methods called).
Create a new game component by right-clicking on the project in Solution Explorer and selecting Add → New Item. Select Game Component as the template from the list on the right side of the window, and name the game component file SpriteManager.cs.
Looking at the code generated for your new game component, you will notice that it
contains constructor, Initialize, and Update methods. Also, the class derives from GameComponent.
If you want to create a game component that will also be wired into the game
loop's Draw method so that your component has the
ability to draw items as well, you can do so by instead deriving from the DrawableGameComponent class.
You're going to be using your sprite manager to invoke the Draw methods of all the sprites it manages, so you'll
need to have this game component wired up to the game's Draw method. Change the base class of your game component to DrawableGameComponent to enable this
functionality:
public class SpriteManager : Microsoft.Xna.Framework.DrawableGameComponent
After changing the base class, you'll need to create an ...