Смекни!
smekni.com

Написание компьютерной игры Сбей самолет (стр. 1 из 3)

ОГЛАВЛЕНИЕ

РАЗРАБОТКА ЭСКИЗНОГО И ТЕХНИЧЕСКОГО ПРОЕКТОВ

ПРОГРАММЫ

1.Введение

2. Назначение и область применения

3.Технические характеристики

3.1 Постановка задачи

3.2. Описание алгоритма

3.3. Организация входных и выходных данных

3.4. Выбор состава технических и программных средств

РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА

1. Разработка программы

2. Спецификация программы

3. Текст программы

4. Описание программы

4.1. Общие сведения

4.2. Функциональное назначение

4.3. Описание логической структуры

4.4. Используемые технические средства

4.5. Вызов и загрузка

4.6. Входные данные

4.7. Выходные данные

5. Тестирование программы

ВНЕДРЕНИЕ

1. Условия выполнения программы

2. Выполнение программы

3. Сообщение оператору

ЗАКЛЮЧЕНИЕ

ГЛОССАРИЙ

ЛИТЕРАТУРА

ПРИЛОЖЕНИЯ


РАЗРАБОТКА ЭСКИЗНОГО И ТЕХНИЧЕСКОГО ПРОЕКТОВ

ПРОГРАММЫ

1 Введение

Задание на курсовую работу по дисциплине

«Алгоритмические языки и программирование»

Студент группы ОИн-609

Минкин Владимир Валерьевич

Направление: «Информатика и ВТ», № контракта 09400060602052

Тема: Разработка приложения для Windows, представляющего собой компьютерную игру «Сбей самолет».

Условие задачи:

Игра «Сбей самолет» заключается в том, что по экрану летят вражеские самолеты, цель играющего – сбить их. Пусковая установка находится в нижней строке экрана. Пусковую установку можно перемещать по строке вперед и назад.

Задание выдано: 10 сентябрь 2007 ___________________________.


2 Назначение и область применения

В данном задании необходимо разработать развлекательную программу, представляющую собой игру. Область применения: досуг программиста. Поскольку ставится задача разработать приложение для Windows, то использоваться программа может только под управлением Windows 9х - Vista.


3 Технические характеристики

3.1 Постановка задачи

Программа «Сбей самолет» представляет собой игру, цель которой – уничтожить самолеты противника. В начале игры в окне программы отображается несколько объектов: летящие самолеты и пусковая установка (см. Приложение 1). Игрок, нажав пробел, может запустить ракету, которая, если момент запуска выбран правильно, собьет самолет (см. Приложение 2). Так же с помощью клавиш перемещения курсора игрок может сместить пусковую установку влево или вправо.

В условии задачи игры «Сбей самолет» нужно применить мультипликацию для рисования самолетиков на фоне неба, рисования пушки и ракеты. А так же генератор случайных чисел для случайной высоты полета. Надо посчитать количество сбитых самолетов.

3.2 Описание алгоритма

В программе решается одна независимая подзадача: Мультипликация.

Задача «Мультипликация» решается в три этапа: 1) вывод изображения на поверхности фона; 2) стирание изображения, восстановление фона; 3) изменение координат изображения на несколько точек, в зависимости от выводимого объекта.

Схема алгоритма, изображающего мультипликацию, представлена на рис.1.


Программа выполняется следующим образом: Сначала на форму выводятся объекты – летящие самолеты, и пушка. Игрок запускает ракету, которая может сбить или не сбить самолет. За один раз можно пустить только одну ракету. В момент запуска увеличивается счетчик пуска ракет. Если ракета попадает в самолет, то стирается самолет и ракета, увеличивается счетчик попаданий, самолет начинает «полет» снова, а игрок получает право пустить следующую ракету. Если игрок не попал в самолет, ракета долетает до верхней границы окна, и игрок получает право пустить следующую ракету. Если счетчик выстрелов или попаданий достигает своего максимально-допустимого предела, то программа выдает соответствующее сообщение. После нажатия игроком на кнопку «ок» все счетчики сбрасываются, и программа начинает свое выполнение сначала.

Схема алгоритма программы представлена на рис.2.


3.3 Организация входных и выходных данных

Приложение требует несколько файлов (графическое отображение фона, самолетов, пушки и ракеты), это графические файлы в формате BMP. Эти файлы прямого доступа.

back: TBitmap; // фон

plane, plane2: TBitmap; // Самолеты

rocket: TBitmap;// Пушка

bomb: TBitmap; // Ракета

3.4 Выбор состава технических и программных средств

Для реализации данной программы был выбран язык программирования высокого уровня TurboDelphiExplorer. Среда данного языка наиболее удобна для реализации и разработки программ для Windows.

Технические характеристики компьютера:

PentiumIII и выше с тактовой частотой 1, 4 ГГц;

Объем оперативной памяти не менее 512 Мб;

Необходимое пространство на жестком диске 600 Мб.

Дополнительных средств (принтер, сканер, дополнительные дисководы и т.д.) не требуется.


РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА

1. Разработка программы

Для разработки приложения игры «Сбей самолет» используется среда визуального программирования Delphi. Проект программы содержит одно окно:

Окно form 1:

Компонент Form1.

Свойства:

Caption - Сбей самолет;

BorderStyle - bsSingle;

1 - КомпонентTimer1.

свойства:

interval - 25;

2 - Компонент ProgressBar1.

свойства:

max – 20;

position – 20;

step - -1;

smooth - false;

3-Компонент StatusBar1.

свойства:

panels: TstatusPanels (Panel [0]; Panel [1]);

4-Компонент ProgressBar2.

свойства:

max - 16;

position - 0;

step - 1;

smooth – false;

5 - компонентPanel1.

свойства:

Align – alBottom;

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

Загрузку битового образа из файла обеспечивает метод LoadFromFile, которому в качестве параметра передается имя bmp-файла.

Отображение битового образа обеспечивает метод Draw объекта Canvas. В качестве параметров метода указывают координаты точки, от которой надо вывести битовый образ, и сам битовый образ. Например, инструкция

Form1.Canvas.Draw (10, 20, bm);

выводит на поверхность формы битовый образ bm. Если свойству Transparentбитового образа присвоить значение True, то фрагменты битового образа, цвет которых совпадает с цветом его левой нижней точки, не будут выведены. Таким образом получается эффект прозрачного фона.

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

Перед выводом картинки в новой точке предыдущее изображение должно быть удалено. Удалить изображение объекта можно путем перерисовки той части, которая перекрыта объектом.

В данной программе процедура обработки события Create загружает битовые образы, устанавливает размер формы в соответствии с размером фонового рисунка и задает начальное положение объектов. Следует обратить внимание на то, что начальное значение переменных х и х3, которые определяют положение левой верхней точки области вывода изображения самолетов – отрицательное число, по модулю больше ширины битового образа объекта. Поэтому в начале работы программы самолет не виден. С каждым сигналом от таймера значения координат х и х3 увеличивается, и на экране появляется та часть битового образа, координаты которого больше нуля. Таким образом, у наблюдателя создается впечатление, что самолет вылетает из-за левой границы окна.

Основную работу выполняет процедура обработки события Timer, которая рисует самолет, пусковую установку и снаряд. Сначала она сравнивает координаты самолета и снаряда. Если координаты самолета совпадают с координатами снаряда, процедура стирает самолет, увеличивает счетчик попаданий и завершает работу. Если снаряд не долетел до самолета, процедура перерисовывает самолет на новом месте. Если ракета запущена, то процедура рисует ее. Далее процедура проверяет, надо ли перерисовать на новом месте пусковую установку. Если игрок удерживает клавишу перемещения курсора, то процедура перерисовывает пусковую установку относительно ее текущего положения. Запуск ракеты обеспечивает процедура обработки события KeyPress. Она, если нажат пробел, и если ракета не запущена, записывает в координату Y ракеты значение clientheight – 80, в результате процедура обработки события Timerрисует ракету. Нажатие клавиш перемещения курсора обрабатывает процедура события KeyDown (это событие генерируется до тех пор, пока пользователь удерживает клавишу). Процедура, в зависимости от того, какую клавишу удерживает игрок, задает направление перемещения установки.

Компоненты ProgressBar1 и ProgressBar2 используются для наглядного представления хода игры. Компонент ProgressBar1 показывает, сколько ракет есть еще в запасе у игрока, чтобы сбить самолеты. Если поле компонента «опустеет», в этом случае значение переменной n будет равно 21, то игра заканчивается, и выдается сообщение о проигрыше. Компонент ProgressBar2 наглядно показывает, сколько самолетов уже сбито. Если поле компонента заполнится, в этом случае значение переменной m будет равно 16, то на экран выводится сообщение о выигрыше.

В компоненте StatusBar1 отображается количество выстрелов, и количество сбитых самолетов.

Компоненты ProgressBar1, ProgressBar2, StatusBar1 располагаются на контейнере Panel, который привязан к нижней части окна.


2 Спецификация программы

Исполняемый Файл программы «игра «Сбей самолет»» имеет название flight.exe и расположен на диске А: в каталоге курсовая. Состав проекта приведен в таблице 1.

Таблица1. Состав проекта

Наименование Обозначение Примечание
flight.dpr Файл проекта Связывает все файлы проекта
flight.res Файл ресурсов Содержит пиктограммы, графические изображения
Unit1.dfm Файл формы №1 Содержит список свойств всех компонентов, включенных в форму №1.
Unit1.pas Файл программного модуля для формы №1 Определяет функциональность формы №1

3 Текстпрограммы