Создание игровой программы "WP-Billiards"

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

?о можно будет запустить саму игру, сменить имя игрока, просмотреть таблицу рекордов, а также выйти из программы.

Выводы

. Исследована предметная область. Рассмотрены возможные варианты построения компьютерной реализации игры в бильярд.

. Построена математическая модель программы.

. Определены функциональные требования к проекту.

 

2. Проектирование программного продукта

 

Для реализации проекта на основе выдвинутых требований следует сначала определить архитектуру программы. Построение архитектуры очень важно для программиста: на этом этапе вся задача структурируется, определяются компоненты программы и их взаимодействие. Результат именно этапа проектирования используется программистом в качестве отправной точки при реализации проекта. Чем больше будет потрачено сил и времени на проектирование, тем проще будет этап реализации, и тем оптимальнее будет код проекта.

 

2.1 Выбор среды выполнения программы

 

Среда выполнения программы во многом определяет как структуру самой программы, так и некоторые эксплуатационные и функциональные характеристики проекта. Так как дело мы имеем с игровым проектом, при выборе среды выполнения программы следует в большей степени ориентироваться не на удобство программирования, а на популярность среды. На сегодняшний день наиболее популярными операционными системами во всем мире являются операционные системы семейства Windows фирмы Microsoft. По некоторым данным, они установлены на 95% всех персональных компьютеров в мире. Безусловно, при разработке программы наш выбор падет именно на эти операционные системы. К их числу будем относить Windows 95/98/Me/NT/2000/XP/2003 и их модификации.

Но сама операционная система Windows предоставляет множество возможностей и технологий для реализации проекта. При дальнейшем уточнении среды программирования будем руководствоваться следующим набором особенностей реализуемого проекта:

) программа будет использовать множество динамических полноцветных изображений;

) в программе должна будет обеспечиваться плавность движения объектов на экране;

) программа должна работать в полноэкранном режиме (когда пользователь играет и игра требует от него постоянного сосредоточения, никакая посторонняя информация на экране не должна его отвлекать).

Для удовлетворения этих требований идеально подходит менеджер видеопамяти DirectDraw - компонент DirectX. Он обладает следующими свойствами:

) Быстрый вывод поверхностей (спрайтов) на экран;

) Возможность масштабирования изображений;

) Возможность простой реализации двойной буферизации;

) Кадровая синхронизация при выводе изображений;

) Возможность работы в полноэкранном режиме.

 

2.2 Определение архитектуры проекта

 

Так как проект имеет немного функций, имеет смысл не разбивать его на множество модулей, а хранить все в одном файле. Сюда не входит использование модуля от Microsoft ddutil.cpp, расширяющего возможности работы с DirectDraw.

Основная идея работы с DirectDraw состоит в поочередном копировании поверхностей на экран и смене поверхностей на экране. В данном проекте к экрану подключено две поверхности (такая схема является общепринятой): отображаемая и невидимая. Принцип работы программы состоит в следующем: на невидимую поверхность копируются все спрайты (тоже представленные поверхностями), после чего поверхности экрана меняются местами, и ситуация повторяется. При смене поверхностей автоматически ожидается кадровый синхроимпульс, чем достигается кадровая синхронизация, и тем самым - плавность движения. Общий алгоритм обновления информации на экране можно представить в следующем виде:

) Регенерируем поверхности, на которых поменялось изображение;

) Выводим нужные поверхности на невидимую экранную поверхность;

) Меняем местами экранные поверхности;

) Переходим к пункту 1.

Данный цикл должен быть реализован в главном цикле программы, который, тем не менее, должен еще и обрабатывать приходящие сообщения Windows. Это позволяет максимально использовать ресурсы ЭВМ, не перегружая очередь сообщений, чего нельзя было бы сказать, если бы мы для реализации цикла использовали таймер с высокой частотой.

Выводы

. Рассмотрены возможные среды выполнения проекта. В качестве платформы выбрана операционная система Windows с использованием Microsoft DirectX.

. Рассмотрены принципы работы с изображениями в DirectDraw. Определена архитектура проекта.

 

 

3. Программная реализация проекта

 

.1 Выбор среды программирования

 

Количество сред программирования, позволяющих писать приложения для Windows очень велико. Однако выбор остановим на среде Microsoft Visual C++ пакета Microsoft Visual Studio 6.0, как имеющим следующие преимущества:

наличие стандартных библиотек для работы с DirectDraw;

автоматическое приведение типов данных. Так как все координаты во избежание потери данных представлены в виде чисел с плавающей точкой, а при выводе на экран требуются целые координаты, такое часто используется. Например строчка кода Viewball (x, y) в Delphi имела бы вид ViewBall (round(x), round(y)) что довольно неудобно;

удобная среда создания исходных текстов;

получаемый компактный и быстрый код;

наличие уже готового модуля ddutil от Microsoft.

 

3.2 Реализация алгоритмов создания и вывода поверхностей

 

Все поверхности, используемые в программе можно поделить на два типа: динамические и статические. Статическими являются ?/p>