Счет игры
Счет игры
Итак, это уже похоже на игру. Но пока ей не хватает увлекательности. Нужно добавить подсчет результатов. Отображение результатов игры — не самая сложная задача. Мы можем выводить текст на экран с помощью метода DrawString. Но при этом потребуется указать шрифт, кисть и координаты вывода текста. Начать стоит со шрифта. Его надо инициализировать в конструкторе формы при помощи кода, приведенного в листинге 11.31.
Листинг 11.31
/// <summary>
/// Шрифт для вывода счета
/// </summary>
private Font messageFont = null;
// Создадим шрифт для показа набранных очков
messageFont = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Regular);
Теперь необходимо выбрать прямоугольник, в котором будет отображаться текст. Нужно зарезервировать 15 пикселов в верхней части экрана для отображения текущего счета. При этом потребуется модифицировать игру, чтобы двигающиеся объекты не попадали в эту область.
Используя переменную для хранения этой высоты, можно легко изменить размеры информационной панели, если понадобится. Прямоугольник инициализируется при загрузке формы, как показано в листинге 11.32.
Листинг 11.32
/// <summary>
/// Прямоугольник, в котором будет отображаться счет игры
/// </summary>
private Rectangle messageRectangle;
/// <summary>
/// Высота панели для счета.
/// </summary>
private int scoreHeight = 15;
// Устанавливаем размеры прямоугольника для счета
messageRectangle = new Rectanglе(0, 0, this.ClientSize.Width, scoreHeight);
Если прямоугольник будет слишком мал для текста, то текст будет обрезаться при отображении.
После того как будут заданы шрифт и область для отображения текстовой информации, пора позаботиться о кисти. Выбирая тип кисти, одновременно указывайте цвет и узор для рисования, как показано в листинге 11.33.
Листинг 11.33
/// <summary>
/// Кисть, используемая для отображения сообщений
/// </summary>
private SolidBrush messageBrush;
// Выбираем красную кисть
messageBrush = new SolidBrush(Color.Red);
Текст счета игры на экране будет отображаться красным цветом. Чтобы вывести сообщение на экран, понадобится вызвать метод DrawString в событии Form1_Paint, как показано в листинге 11.34.
Листинг 11.34
/// <summary>
/// Строка для вывода сообщений
/// </summary>
private string messageString = "Нажмите Старт для начала игры";
g.DrawString(messageString, messageFont, messageBrush, messageRectangle);
Созданная переменная messageString применяется для вывода сообщений на экран во время игры.