Этот урок описывает первый шаг в создании классической 2D игры «Змейка» на C++ с использованием WinForms. Мы создадим полностью играбельный проект без использования игровых движков, опираясь исключительно на возможности C++ и WinForms.
Платформа WinForms
Windows Forms — относительно простая платформа для разработки приложений под Windows. Она позволяет создавать проекты с пользовательским интерфейсом, дизайном и функционалом. Множество программ, используемых и по сей день, основано на WinForms. Несмотря на основную направленность на создание пользовательского интерфейса, WinForms подходит для разработки небольших игр. Для этого используется объект таймер, позволяющий выполнять действия по времени, что необходимо для создания анимации и движения в игре. Для более крупных проектов потребуется изучение игровых движков, таких как Unity. Разработка игры на чистом C++ позволяет глубже понять принципы построения игр, их архитектуру и этапы разработки.
Разработка игры «Змейка»
Наша игра «Змейка» будет соответствовать классической версии: змея, поедающая фрукты на карте, экран проигрыша, анимация и другие элементы. После завершения курса вы сможете создавать подобные небольшие игры или перейти к изучению игровых движков. Новичкам в WinForms для C++ рекомендуется предварительно пройти отдельный курс по этой теме.
Настройка среды разработки: установка Visual Studio
Для разработки проекта потребуется установить Visual Studio Community — бесплатная версия, подходящая для наших целей. Загрузите установщик с официального сайта и запустите его. Установщик может потребовать загрузки дополнительных компонентов. Во время установки выберите компонент «Разработка классических приложений на C++», который включает в себя WinForms, и установите галочку возле «C++ CLI» для создания программ с графическим интерфейсом на базе C++.
Создание проекта в Visual Studio
Создайте новый проект:
- Откройте Visual Studio и выберите «Создать проект».
- В поиске шаблонов введите clr.
- Выберите шаблон «Пустой проект CLR (.NET Framework)».
- Назовите проект SnakeGame и укажите расположение.
- Нажмите «Создать».
Добавьте новый элемент:
- Щелкните правой кнопкой мыши на «Исходные файлы».
- Выберите «Добавить» -> «Создать элемент».
- Перейдите во вкладку «IP» и выберите «Форма Windows Forms».
- Назовите форму GameForm и нажмите «Добавить».
Это будет основное окно нашей игры. Возможны ошибки, которые можно пока игнорировать.
Настройка файла Game.cpp
Откройте файл Game.cpp. В нём необходимо:
- Подключить пространства имён: System, System::Windows::Forms.
- Определить основную функцию Main:
#include <iostream>
using namespace System;
using namespace System::Windows::Forms;
int main(array<String^>^ args) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
SnakeGame::GameForm form;
Application::Run(%form);
return 0;
}
Обратите внимание на использование % перед объектом form для корректной передачи ссылочного класса. Сохраните изменения и запустите проект.
Удаление консольного окна
Для удаления консольного окна:
- Щелкните правой кнопкой мыши на проекте -> «Свойства».
- Перейдите в «Компоновщик» -> «Дополнительные».
- В «Точка входа» укажите main.
- Перейдите в «Система» -> «Подсистема» и выберите «Подсистема Windows (/SUBSYSTEM:WINDOWS) ».
- Нажмите «Применить» и «ОК».
Теперь при запуске проекта будет отображаться только окно GameForm. В последующих уроках мы начнём разработку самой игры.
В этом первом уроке мы настроили среду разработки и создали базовый проект для нашей игры «Змейка». В следующих уроках мы начнём добавлять функциональность игры, реализуя игровой процесс, графику и анимацию.