Учебник. Создание приложения WinForms для игры «Подбери пару»
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В этой серии из четырех учебников вы создадите игру «Подбери пару», в которой игрок должен подобрать пару скрытым значкам.
Используйте сведения из этих учебников, чтобы узнать о том, как выполнять приведенные ниже задачи интегрированной среде разработки (IDE) Visual Studio.
- сохранять объекты, например значки, в объекте List ;
- использовать цикл foreach в C# или цикл For Each в Visual Basic для перебора элементов в списке;
- отслеживать состояние формы с помощью ссылочных переменных;
- создавать обработчик событий, который можно использовать для нескольких объектов;
- создавать таймер, который отсчитывает время и вызывает событие ровно один раз после запуска.
По завершении всех действий ваша игра будет готова к использованию.

В первом учебнике вы узнаете, как:
- создавать проект Visual Studio, который использует Windows Forms;
- добавлять и форматировать элемент макета;
- добавлять и форматировать метки для отображения.
Необходимые компоненты
Для выполнения шагов, описанных в этом учебнике, вам понадобится Visual Studio. Перейдите на страницу загрузки Visual Studio, чтобы получить бесплатную версию.
Создание проекта игры «Подбери пару» Windows Forms
Первый шаг в создании игры «Подбери пару» — это создание проекта приложения Windows Forms.
- Откройте Visual Studio.
- В окне запуска выберите Создание нового проекта.

- В окне Создать проект выполните поиск по фразе Windows Forms. Затем выберите пункт Классические в списке Все типы проектов.
- Выберите шаблон Приложение Windows Forms (.NET Framework) для C# или Visual Basic, а затем нажмите Далее.
Примечание. Если шаблон Приложение Windows Forms (.NET Framework) отсутствует, его можно установить из окна Создание проекта. В сообщении Не нашли то, что искали? выберите ссылку Установка других средств и компонентов.
После этого выберите пункт Разработка классических приложений .NET в Visual Studio Installer.
В Visual Studio Installer выберите Изменить. Вам может быть предложено сохранить результаты работы. Выберите Продолжить, чтобы установить рабочую нагрузку.

Visual Studio создает решение для приложения. Решение является контейнером для всех проектов и файлов, необходимых приложению.
На этом этапе Visual Studio отображает пустую форму в конструкторе Windows Forms.
Создание макета для игры
В этом разделе вы создадите для игры сетку «четыре на четыре».
- Щелкните форму, чтобы выбрать конструктор Windows Forms. На этой вкладке для C# считывается файл Form1.cs [Design] и для Visual Basic — Form1.vb [Design]. В окне Свойства задайте следующие значения свойств формы.
- Измените свойство Text с Form1 на Matching Game. Этот текст отображается в верхней части окна игры.
- Задайте размер формы. Вы можете изменить его либо задав для свойства Size значение 550, 550, либо перетягивая угол формы до тех пор, пока вы не увидите правильный размер в нижней части IDE Visual Studio.
- Выберите вкладку Панель элементов в левой части интегрированной среды разработки. Если она не отображается, выберите Представление>Панель элементов в строке меню или нажмите сочетание клавиш Ctrl+Alt+X.
- Перетащите элемент управления TableLayoutPanel из категории Контейнеры на панели элементов или дважды щелкните его. В окне Свойства задайте следующие свойства для панели.
- Задайте для свойства BackColor значение CornflowerBlue. Чтобы задать это свойство, щелкните стрелку рядом со свойством BackColor. В диалоговом окне BackColor выберите Интернет. Выберите CornflowerBlue в списке названий доступных цветов.
Примечание. Цвета упорядочены не по алфавиту, и цвет CornflowerBlue находится в нижней части списка.
Элемент управления TableLayoutPanel теперь представляет собой сетку «четыре на четыре» с 16 квадратными ячейками одинакового размера. Эти строки и столбцы задают места, в которых позже появятся значки.

Добавление и форматирование меток для отображения
В этом разделе вы создадите и отформатируете метки, которые будут отображатся во время игры.
- Убедитесь, что TableLayoutPanel выбран в редакторе формы. Вы должны увидеть элемент управления tableLayoutPanel1 в верхней части окна Свойства. Если он не выбран, выберите элемент управления TableLayoutPanel в форме или из списка в верхней части окна Свойства.
- Откройте панель элементов, как и прежде, а затем — категорию Стандартные элементы управления. Добавьте элемент управления Label в верхнюю левую ячейку TableLayoutPanel. Теперь элемент управления label выбран в интегрированной среде разработки. Задайте для него следующие свойства.
- Задайте для свойства BackColor метки значение CornflowerBlue.
- Задайте свойству AutoSize значение False.
- Задайте для свойства Dock значение Fill.
- Задайте для свойства TextAlign значение MiddleCenter, нажав кнопку раскрывающегося списка рядом со свойством, а затем щелкнув среднюю кнопку. Это значение необходимо, чтобы значок отображался в середине ячейки.
- Выберите свойство Font. Появится кнопка с многоточием (…). Нажмите многоточие и задайте для параметра Font значение Webdings, для параметра Font Style — значение Bold, а для параметра Size — значение 48.
- Установите свойство Text равным букве с.
Теперь в левой верхней ячейке TableLayoutPanel располагается черный квадрат на синем фоне, который выравнивается по центру.
Webdings — шрифт значков, который поставляется с операционной системой Windows. В игре «Подбери пару» игроку нужно подобрать пару для значков. Этот шрифт отображает значки, для которых нужно подобрать пары.
Вместо c попробуйте использовать в свойстве Text разные буквы. Восклицательный знак соответствует пауку, прописная буква N — глазу, а запятая — перцу чили.
Этот шаг завершает создание макета вашей формы.

Следующие шаги
Перейдите к следующему учебнику, чтобы узнать, как назначать случайные значки каждой метке и добавлять в метки обработчики событий.
Создание 2D игр в Visual Studio (C#)?
Есть ли какие официальные средства разработки игр в Visual Studio от Microsoft? Знаю о XNA, но Microsoft его забросила. И можно ли вообще написать достойную игру чисто в Visual Studio на C#?
Прошу простить, если какие то из вопросов некорректны.
- Вопрос задан более трёх лет назад
- 34172 просмотра
Комментировать
Решения вопроса 0
Ответы на вопрос 7
Используйте WPF/WinForms. Я когда начинал, делал в WinForms snake/game of life.
Если хотите делать на C# что-то ощутимо более серьезное, то тут только Unity.
Ответ написан более трёх лет назад
Нравится 3 3 комментария
Помимо Unity есть у другие решения, не стоит так категорично высказываться.
Скажите, а в WPF на .NET 4.0 есть возможность встроить Unity3D ?
RMar: Чего? В WPF встроить Unity? О_о

GavriKos @GavriKos Куратор тега Разработка игр
У вас немного некорректно поставлен вопрос. VisaulStudio — это просто меганавороченный блокнот. Ей все равно, пишете вы игру, сервер, веб-приложение или еще что то, лишь бы на знакомом ей языке. По сути ваш вопрос должен был звучать как «можно ли создать игру только средствами c#». Ответ — можно, но долго и непроизводительно. Если жесткое ограничение по языку — используйте Unity. Если жесткое ограничение по «не устанавливать ничего кроме IDE (VisualStudio)», то смотрите в сторону c++ оберток над openGL.
Видеоуроки по созданию игры на C++
Небольшая серия видеоуроков, следуя которым вы сможете написать свою игру на C++ даже будучи новичком в программировании.
Нашли для вас серию видео, в которой автор по шагам рассказывает, как написать свою игру на C++. Эти уроки не требуют каких-то продвинутых знаний, но базовые представления о программировании приветствуются.
Урок 0 — Введение и подготовка
В этом уроке автор расскажет, как пишутся игры. Также вы загрузите компилятор и напишите простой helloworld в Visual Studio, чтобы всё было готово для разработки игры.
Урок 1 — Окна и указатели
Здесь вы перейдёте к первому шагу на пути к игре: созданию окон. К концу урока у вас всё будет готово для отображения графики в окне.
Урок 2 — Графика
В этом уроке вы узнаете, как написать программу для отрисовки фигур на экране. Также по ходу дела автор объяснит некоторые важные вещи вроде того, что такое буфер и зачем он нужен, что есть куча и стек, как запросить у Windows больше памяти и не только.
Урок 3 — Ввод, движение и время
Этот урок про то, как создать систему ввода. Вы узнаете, как сохранять состояния кнопки, чтобы легко определять, нажата она или нет. Также речь зайдёт о том, как можно заставить игрока двигаться пока нажата клавиша и как сделать этот процесс независимым от частоты кадров.
Урок 4 — Геймплей, столкновения, улучшение передвижения
В этом уроке вы займётесь геймплеем игры. Вы добавите элементы вроде игроков, мяча и арены, а затем разберётесь, как заставить объекты двигаться и как обрабатывать их столкновения.
Урок 5 — Вражеский ИИ, подсчёт очков, завершаем геймплей
Из этого урока вы узнаете, как создать систему подсчёта очков. Также вы создадите ИИ противника и узнаете некоторые важные вещи об ИИ в играх.
Урок 6 — Завершаем игру
В последнем уроке вы завершите игру. Вы реализуете меню, систему отрисовки текста и немного отполируете результат.
Игра на C#

Игра на C# с нуля / Урок #1 – Создание игры на C# WinForms для начинающих
Представляем вам курс по разработке игры на базе языка C# и платформы WinForms. В курсе для начинающих вы с нуля создадите небольшую 2Д игру без использования какого-либо игрового движка.
Видеоурок
Информация про WinForms
Windows Forms является относительно простой платформой для разработки различных приложений под операционную систему Виндовс. На ее основе вы можете строить небольшие проекты, что будут обладать пользовательским интерфейсом, дизайном и функциями.
Помимо приложений вы также можете строить небольшие игры. И тут стоит сказать, что любая игра от приложения в основе своей отличается динамической картинкой. В программах различные действия выполняются только при взаимодействиях с пользователем, в играх действия выполняются автоматически.
В WinForms можно указать объект таймер, что в автоматическом режиме выполняет действия внутри игры. Так вы можете создать автоматическую смену объектов, передвижение игроков и прочие динамические эффекты.
А как же игровые движки?
Для разработки более-менее крупных проектов вам в любом случае понадобиться изучить игровой движок для построения игр. Например, для языка C# есть отличный движок под названием Unity .
Вы можете задать вопрос: «А зачем разрабатывать игры без использования игрового движка?«. На самом деле, разработка проектов на чистом C# позволит вам лучше понять всю суть построения проектов. Вы будете лучше понимать как происходит создание игры, из чего оно состоит и какие основные этапы существуют при построении игр. В будущем при поиске работы вы всегда сможете сказать что умеете писать игры без игровых движков, что является приятным бонусом к вашему резюме.
План курса
В ходе курса мы с вами ознакомимся с платформой WinForms и на ее основе научимся создавать простые 2Д игры. Мы разработаем небольшую гоночную игру, где у нас будет основной игрок, машинки противников, сбор монет, экран проигрыша и динамическая смена заднего фона.
Это будет вполне играбельный проект, что будет создан без каких-либо игровых движков. После курса вы сможете создавать свои подобные небольшие игры или же сможете перейти к изучению игровых движков и построению проектов на их основе.
Курсы по C# и Unity разработке
Если вы хотите получить больше информации относительно языка C#, то рекомендуем вам дополнительный курс по этой теме.
На нашем сайте вы можете найти полноценную программу обучения по C# разработке и построению программ на его основе. Ознакомится с программой обучения по С# можно по этой ссылке .
Помимо изучения языка C# вы также можете посмотреть нашу другую программу обучения по разработке игр на базе игрового движка Unity .
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца