You've learned the basic building blocks of XNA, which are required for practically every XNA game. This section presents a number of techniques that may come in handy as you build the rest of the game components required to complete the Tank game.

Handling Many Objects Efficiently

Now that you have a trigger on your screen, say that you want to make bullets come out of the tank when you hold down the trigger. This is the first time you've needed transient objects in the game — that is, things that are on the screen for only a limited period of time. Conceivably, you could add a GameComponent object called Bullet to the game every time the tank fires, and you could remove it when it hits enemies or a wall. However, it's not efficient to keep adding and removing GameComponent objects from the game, and the logical flow might become difficult to follow if a component is removing itself from the game during an update.

Rather than think of each component as an entity within the game, you can think about each component taking responsibility for a concept within the game. There's only one player tank, one joystick, and one trigger, so you can just create a GameComponent object to represent these. If you're going to need many game entities to appear and disappear during the game, then you should write a single GameComponent object to manage all these entities at once. Of course, you'll likely need a class to represent each entity, but you should make a single ...

Get Beginning Windows® Phone 7 Application Development: Building Windows® Phone Applications Using Silverlight® and XNA® now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.