Конгер Д.
Физика для разработчиков компьютерных игр
стр. 491

процедурах обработки сообщений обращайтесь к теме WindowProc в документации по платформе Microsoft Win32.

Можно выделить в классе окна дополнительные объемы для хранения данных. Это нечасто используемая возможность, поэтому элементы из строк 6 и 7 листинга С.2 обычно инициализируются нулями.

В строке 8 инициализируется шестой элемент структуры WNDCLAS SEX, содержащий дескриптор модуля, в котором определен класс окна. Чтобы получить этот дескриптор, программа вызывает функцию Win32 GetMo-duleHandle().

В строке 9 элементу hlcon структуры WNDCLASSEX присваивается значение NULL. Обычно в реальных программах в этом элементе хранится идентификатор ресурса - значка, отображающегося при минимизации окна программы. Я настоятельно рекомендую вам создать такой значок и поместить в элемент структуры идентификатор ресурса этого значка. Ресурсы вроде значков и курсоров мыши можно создавать в Visual Studio.

Хотя следующему элементу структуры WNDCLASSEX в листинге С.2 тоже присвоено значение NULL, во многих играх ему присваиваются другие значения. Этот элемент hCursor содержит дескриптор ресурса курсора мыши, используемого в программе. Если ваша игра - стрелялка с видом от первого лица или что-то похожее, то этому элементу можно присваивать значение NULL, как сделано в строке 10. Это покажет Windows, что ваша программа не использует курсор. Но если курсор нужен, то элементу hCursor нужно присвоить другое значение.

Чтобы задать определенный цвет фона окна, программа должна сообщить Windows, что нужно использовать кисть (brush). Игры, основанные на DirectX, обычно не используют кисти — все их окна отрисовывает DirectX. Поэтому в таких играх следующему элементу структуры WNDCLASSEX обычно присваивается значение NULL.

Пользовательские интерфейсы игр часто радикально отличаются от интерфейсов обычных программ Windows. Поэтому следующий элемент структуры WNDCLASSEX в играх используется далеко не всегда. Этот элемент называется lpszMenuName. Как видно из его имени, в этом элементе содержится идентификатор ресурса для основного меню окна. Чаще всего в играх этому элементу присваивается значение NULL.

Игра должна задать уникальный идентификатор каждому классу окна, который она зарегистрирует в Windows. Как видно из строки 13 листинга

С.2, этот идентификатор представляет собой строку. Эта строка может быть любой, при условии, что она уникальна. В строке 13 используется строка "MyWindowClass", но в играх лучше использовать что-то более очевидное, например, "<Ha3BaHne_nrpH>_WindowClass", где <название_игры> - это название вашей игры (разумеется, латинскими буквами).

В последнем элементе структуры WNDCLASSEX содержится дескриптор ресурса для уменьшенной версии значка, указанного в элементе hlcon. Игры чаще всего присваивают этому элементу значение NULL.



Новости
Новый ролик Fallout 76 посвятили совместной работе
Компания Bethesda опубликовала новый ролик Fallout 76, продолжающий серию обучающих видео «Время приключений».
Battle for Azeroth: до 120-го уровня добрались за пять часов
Первый в мире игрок 120-го уровня появился уже через четыре с лишним часа после открытия аддона.