Creating a Chasing Sprite

As mentioned previously, when it comes to computer-controlled objects, the goal of any game is to make those objects appear intelligent to the point where a user may not be able to tell the difference between an object controlled by a human and an object controlled by a computer. We clearly aren't even close to that.

The automated sprites you've added do nothing more than move forward in a straight line. While you've done some great work on your SpriteManager, we haven't discussed how to do anything to improve the movement of your automated sprites.

Let's create a couple of different objects that do something a little more intelligent than simply moving in a straight line.

In this section, you'll create a new sprite type that will chase your user-controlled object around the screen. You'll do this with the following very simple chase algorithm:

if (player.X < chasingSprite.X)
    chasingSprite.X −= 1;
else if (player.X > chasingSprite.X)
    chasingSprite.X += 1;

if (player.Y < chasingSprite.Y)
    chasingSprite.Y −= 1;
else if (player.Y > chasingSprite.Y)
    chasingSprite.Y += 1;

Essentially, the algorithm compares the position of the player with that of the chasing sprite. If the player's X coordinate is less than the chasing sprite's X coordinate, the chasing sprite's coordinate is decremented. If the player's X coordinate is greater than the chasing sprite's X coordinate, the chasing sprite's X coordinate is incremented. The same is done with the Y coordinate.

To implement ...

Get Learning XNA 3.0 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.