Разработка программы-игры «Змея» на языке С++ с использованием функций WinAPI, страница 4

Для реализации графики было выбрано стандартное средство WinAPI – использование контекста устройства.

Контекст устройства (англ. Device Context) является основным инструментом, применяемым в Windows для обеспечения независимости приложений от устройств. Понятие «Контекст устройства» является частью графической подсистемы Windows GDI (интерфейс Microsoft Windows для представления графических объектов и передачи их на устройства отображения, такие как мониторы и принтеры, отвечающий за отрисовку линий и кривых, отображение шрифтов и обработку палитры).

Контекст устройства — это внутренняя структура, для управления информацией о выходном устройстве. Она содержит информацию о параметрах и атрибутах вывода графики на устройство (например, дисплей или принтер). Вместо направления вывода непосредственно на аппаратное устройство, приложение направляет его в контекст устройства, а затем Windows пересылает вывод в аппаратное устройство.

Вот пример, показывающий этапы, необходимые для вывода строки в клиентскую область окна посредством обращения к контексту устройства:

//Получить дескриптор контекста устройства клиентской области окна.

HDC hDC = GetDc( hWnd );   

//выбрать указанный объект в контексте устройстваSelectObject( hDC, GetStockObject ( ANSI_VAR_FONT ) ));

//изменить цвет текста(в данном случае на красный)

SetTextColor ( hDC, RGB(255,0,0));

//Вывести строку текста в клиентскую область

TextOut( hDC, 0, 0, "Text output to client area.", 27 );

//освободить контекст устройства

ReleaseDC( hWnd, hDC );

Контекст устройства всегда содержит перо для рисования, кисть для закрашивания областей, шрифт для вывода символов и ряд других объектов.

Для простых игр, которые не требуют быстрой графики, использование GDI больше чем оправдано. Однако GDI не может обеспечить качественную анимацию (нет возможности синхронизации с framebuffer (буфером кадра)). Также GDI не хватает растеризации для отрисовки 3D графики. Однако для наших целей он идеально подходит.

2 ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ И АЛГОРИТМОВ РАБОТЫ

В соответствии с постановкой задачи была разработана игра в среде VS на языке С++, которая представляет собой окно, развернутое на весь экран, разделенное на 2 части: в первой расположен HUD c меню; во второй находится непосредственно поле игры, с расположенными на нем элементами: стенкой окружающей все поле, пеньками, яблоком и непосредственно самой змейкой. Опции меню содержат возможность просмотра  информации об игре, начала игры сначала, остановки игры на паузу и продолжения ее после остановки, завершения программы. Подробней о построении программы: