Предыдущая Следующая
Если клавиша «P» нажата, то переменной paused присваивается значение true . В этом случае создается код на проверку условия, чему именно равна переменная paused, и если ее значение равно true, то, значит, выполнение игрового цикла пропускается, если false, то игра продолжает свою работу (рис. 9.2). Посмотрите на исходный код класса Game1 проекта PauseGame в листинге 9.2.
//=========================================================================
/// <summary>
/// Листинг 9.2
/// Исходный код к книге:
/// "Программирование компьютерных игр под Windows в XNA Game Studio Express"
/// Автор книги: Горнаков С. Г.
/// Глава 9
/// Проект: PauseGame
/// Класс: Game1
/// Реализуем в игре паузу
/// <summary>
//=========================================================================
#region Using Statements using System;
132 Устройства ввода
Проект PauseGame 133
Рис. 9.2. Схема работы паузы в игре
using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; #endregion
namespace PauseGame
{
public class Gamel : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics; ContentManager content; KeyboardState keyboardState; SpriteBatch spriteBatch; Sprite[] sprite = new Sprite[5]; private Texture2D backgroundl; private Texture2D background2; Random rand = new Random();
int j = 0;
Sprite platform;
private bool paused = false;
private bool pauseKeyDown = false;
/// <summary> /// Конструктор /// <summary> public Gamel()
{
graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); graphics.PreferredBackBufferWidth = 1024; graphics.PreferredBackBufferHeight = 7 68; graphics.PreferMultiSampling = false; graphics.IsFullScreen = true; for (int i = 0; sprite.Length > i; {
sprite[i] = new Sprite(12, 10);
}
platform = new Sprite();
}
/// <summary> /// Инициализация /// <summary>
protected override void Initialize()
{ {
for (int i = 0; sprite.Length > i;
sprite[i].spritePosition = new Vector2(rand.Next(10, Window.ClientBounds.Width - 500), j = j - 300);
}
platform.spritePosition = new Vector2(Window.ClientBounds.Width / 2,
Window.ClientBounds.Height - 90);
base.Initialize();
}
/// <summary>
/// Загрузка компонентов игры /// <summary> Предыдущая Следующая
|