C# игра: меню проигрыша с перезапуском (Урок 6)

В этом уроке мы создадим экран проигрыша с возможностью перезапуска игры.

Элементы интерфейса

На экране проигрыша отображаются: надпись о проигрыше и кнопка перезапуска.

Надпись: Добавим объект Label на форму. В свойстве Text укажем «Вы проиграли!». Выберем полужирный шрифт размером около 20 пикселей, красный фон и белый цвет текста. Установим программное имя LabelLose и свойство Visible = false в конструкторе формы.

Кнопка: Добавим объект Button на форму. Установим размер шрифта около 18 пикселей, красный цвет фона, белый цвет текста и свойство FlatStyle = Flat или Popup. Текст кнопки: «Перезапустить». Программное имя: btnRestart. В конструкторе формы установим свойство Visible = false.

Обработка проигрыша и перезапуска

При проигрыше останавливаем таймер и отображаем надпись и кнопку, устанавливая LabelLose.Visible = true и btnRestart.Visible = true.

Обработчик события для кнопки btnRestart:

  • Перемещаем машинки в исходные координаты (например, -130, -130 и -400).
  • Скрываем надпись и кнопку: LabelLose.Visible = false; btnRestart.Visible = false.
  • Запускаем таймер: timer.Enabled = true.

Управление игрой после проигрыша

Чтобы предотвратить управление машинкой после проигрыша и решить потенциальную проблему с потерей отслеживания нажатий клавиш, выполним следующие действия:

  1. Блокировка управления: Добавим булеву переменную lose. Её значение true после проигрыша и false после перезапуска. В обработчике нажатия клавиш добавим проверку: if (lose) return;. В обработчике проигрыша: lose = true; в обработчике кнопки перезапуска: lose = false.
  2. KeyPreview: В конструкторе формы установим свойство KeyPreview = true.

Теперь при проигрыше появляется меню перезапуска, а управление машинкой блокируется до перезапуска.

Что будем искать? Например,программа