Конгер Д.
Физика для разработчиков компьютерных игр
стр. 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.



Новости
Аниме-трейлер Heroes of the Storm посвящён механическим обликам героев
Blizzard выпустила обещанные вместе с появлением в Heroes of the Storm огнемётчика Блэйза новые легендарные механизированные облики нескольких героев: Тираэля, Регара, Абатура и Дехаки.
45-минутная запись геймплея Metal Gear Survive
Японское подразделение IGN представило публике 45-минутную запись геймплея Metal Gear Survive – последней части знаменитой серии, а также первой, в создании которой не принимал участие Хидео Кодзима.