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

 

Программа «Сбей самолет» представляет собой игру, и предназначена для проведения досуга, развлечения играющего. Для правильного функционирования программы необходимо, чтобы компьютер имел процессор с тактовой частотой не менее 600 МГц. Оперативной памяти не менее 512 Мб. Свободного места на жестком диске не менее 600 Мб. Управление игрой производится с клавиатуры, путем нажатия клавиш перемещения курсора для сдвига пушки, и пробел для выстрела. А так же мышь, для ответа на диалоговые сообщения, которые появляются при окончании игрового процесса.

 

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

 

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

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

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

Например:

r: TRect;

r:= Rect (x, y, x+plane.Width, y+plane.Height);

После чего можно вывести объект, стереть его, и снова вывести:

Canvas.CopyRect(r, back.Canvas, r);

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

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

Например:

procedure Тform1.FormKeyDown(sender: Тobject; var Key: Word; shift: tshiftstate);

begin

case key of

VK_LEFT: x1:= x1 - 3;

VK_RIGHT: x1:= x1 + 3;

end;

end;

Таким образом, координата Х пушки меняется, и процедура мультипликации рисует ее со смещением.

Для того чтобы произвести пуск ракеты строго из центра пушки, необходимо координате Х ракеты присвоить значение координаты центра пушки (Координате Х пушки, прибавить 8). А координате У ракеты установить значение чуть меньше ширины формы, и затем с каждым сигналом от таймера прибавлять к этой координате определенное ей число. Таким образом, ракета будет смещаться вверх.

Например:

procedure TForm1.FormKeyPress (Sender: TObject; var Key: Char);

begin

if (key = ' ') and (y2 = -15) then

begin

x2:= x1 + 8;

y2:= clientheight - 80;

n:= n + 1;

StatusBar1.Panels[0].Text:= 'Количество выстрелов: ' + inttostr(n);

ProgressBar1.StepIt;

end;

end;

Чтобы определить попадание ракеты в самолет, необходимо сравнить координаты ракеты, и координаты самолета. Если они совпадают, стереть самолет и ракету, присвоить координате У ракеты значение минус 15, таким образом, программа будет знать, что можно пустить следующую ракету, присвоить переменной счетчика попаданий +1, и пустить самолет сначала. Например:

if (x > x2 -10) and (x < x2 +10) and

(y < y2 + 10) and (y > y2 - 10) then

begin

x:= -30;

y2:= -15;

m:= m + 1;

StatusBar1.Panels[1].Text:= 'Количество попаданий: ' + inttostr(m);

y:= 50 + random(80);

ProgressBar2.StepIt;

exit;

end;

Здесь Х это координата самолета, а Х2 – ракеты.

Чтобы завершить программу, координаты попаданий или выстрелов должны достигнуть своего максимально-допустимого значения. Чтобы проверить это, нужно сравнить текущие значения переменных с номиналом. И если они будут равны, выдать сообщение о выигрыше или проигрыше соответственно, и затем обнулить в программе все счетчики.

Например:

if m = 16 then

begin

timer1.Enabled:= false;

ShowMessage ('Вы Выиграли!!!!');

n:= 0;

m:= 0;

y2:= -15;

progressbar1.Position:= 20;

progressbar2.Position:= 0;

StatusBar1.Panels[1].Text:= 'Количество попаданий: ' + inttostr(m);

StatusBar1.Panels[0].Text:= 'Количество выстрелов: ' + inttostr(n);

timer1.Enabled:= true;

end.

 

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

 

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

Для правильного функционирования программы необходимо иметь процессор Pentium III или аналогичный AMD c тактовой частотой не менее 600 МГц; оперативную память не менее 512 Мб; свободного пространства на жестком диске не менее 600 Мб; операционную систему Windows 9x, 2000, XP или Vista; клавиатура, мышь.



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

 

Для того чтобы запустить программу, необходимо найти, и запустить файл “flight.exe” на диске A в каталоге «Курсовая». После загрузки программы в оперативную память, на экране отобразится окно программы (см. Приложение1).

 

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

 

Программа, для своей работы осуществляет загрузку битовых образов из графических файлов формата bmp. Данные файлы находятся на диске А в каталоге «graphics».

 

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

Пользователь наблюдает на экране монитора летящие самолеты, пытается их сбить. В итоге получает информационное сообщение о выигрыше или проигрыше.

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: