Game-Over Logic and the Game-Over Screen

So, now you have to determine how your game will end. You already have an objective for the game: avoid the three- and four-blade sprites. But when is the game actually over? It seems a bit rough to end the game as soon as the user hits a single blade sprite. Instead, it might make the game a bit more enjoyable if the player has a certain number of lives to play with.

To accomplish this, first you'll need to create a class-level variable in your Game1 class to keep track of the number of lives remaining, as well as a public property with get and set accessors to allow the SpriteManager to access and modify the value:

int numberLivesRemaining = 3;
public int NumberLivesRemaining
{
    get { return numberLivesRemaining; }
    set
    {
        numberLivesRemaining = value;
        if (numberLivesRemaining == 0)
        {
            currentGameState = GameState.GameOver;
            spriteManager.Enabled = false;
            spriteManager.Visible = false;
        }
    }
}

Notice that when the property is set, its value is assigned to the numberLivesRemaining variable, and then that variable is checked to see if its value is zero. If the value is zero, the game state is changed to GameState.GameOver and the SpriteManager is disabled and hidden. This allows you to decrement this value from the SpriteManager class and then, when the player is out of lives, have the game automatically shut down and enter a state in which you can display a game-over screen.

Now, not only do you want to keep track of the number of lives that a player ...

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.