Создание игровой программы "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>