Счет игры

We use cookies. Read the Privacy and Cookie Policy

Счет игры

Итак, это уже похоже на игру. Но пока ей не хватает увлекательности. Нужно добавить подсчет результатов. Отображение результатов игры — не самая сложная задача. Мы можем выводить текст на экран с помощью метода 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 применяется для вывода сообщений на экран во время игры.