begin
if Su25[i].Y>Form1.Image1.Height then FillZap(i);
Su25[i].X:=round(Su25[i].Y*Su25[i].koef_a+Su25[i].koef_b);
inc(Su25[i].Y,random(10));
end;
if rocket.Destroed<>true then dec(rocket.Y,10);
if rocket.Y<-10 then
begin
rocket.Destroed:=true;
rocket.Y:=Form1.Image1.Height+10;
end;
end;
//==============================================================================
procedure ClearScr;
begin
Form1.Image1.Canvas.Brush.Color:=clBlack;
Form1.Image1.Canvas.FillRect(Rect(0,0,Form1.Image1.Width,Form1.Image1.Height));
end;
//==============================================================================
procedure LoadImages_;
var i: integer;
begin
For i:=1 to n do
begin
Su25[i].Gr:=TBitmap.Create;
Su25[i].Gr.LoadFromFile('graph\samolet1.bmp');
Su25[i].Gr.TransparentColor:=clRed;
Su25[i].Gr.Transparent:=true;
end;
turel.Gr:=TBitmap.Create;
turel.Gr.LoadFromFile('graph\turel.bmp');
turel.Gr.TransparentColor:=clRed;
turel.Gr.Transparent:=true;
turel.X:=turel.Gr.Width+10;
turel.Y:=521-turel.Gr.Height;
Rocket.Gr:=TBitmap.Create;
Rocket.Gr.LoadFromFile('graph\bullet.bmp');
Rocket.Gr.TransparentColor:=clWhite;
Rocket.Gr.Transparent:=true;
Rocket.Y:=Form1.Image1.Height+10;
Rocket.Destroed:=true;
end;
//==============================================================================
procedure DrawScene;
var I: integer;
begin
For i:=1 to n do
begin
Form1.Image1.Canvas.Draw(Su25[i].X,Su25[i].Y, Su25[i].Gr);
end;
Form1.Image1.Canvas.Draw(turel.X,turel.Y,turel.Gr);
Form1.Image1.Canvas.Draw(rocket.x,rocket.Y, rocket.Gr);
end;
//==============================================================================
procedure Precache_;
var i: integer;
begin
For i:=1 to n do FillZap(i);
end;
//==============================================================================
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Calc;
Colision;
ClearScr;
DrawScene;
label3.Caption:=inttostr(Killed)+' самолетов';
if killed>=100 then
begin
label3.Caption:='Вы выйграли';
Timer1.Enabled:=false;
Button1.Enabled:=true;
killed:=0;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
LoadImages_;
Precache_;
ClearScr;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Timer1.Enabled:=false;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_LEFT : begin
if turel.X >0 then dec(turel.X,10);
end;
VK_RIGHT : begin
if turel.X<Image1.Width-turel.Gr.Width then inc(turel.X,10);
end;
VK_SPACE : begin
if rocket.Destroed then
begin
rocket.Destroed:=false;
rocket.X:=turel.X + turel.Gr.Width div 2;
end;
end;
VK_ESCAPE : begin
Timer1.Enabled:=false;
Button1.Enabled:=true;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled:=false;
Timer1.Enabled:=true;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Showmessage('Игра "Сбей самолет"'#13#13#13'Автор: студент Дин-809-01 Быстрикова Анна')
end;
end.
Общие сведения: программа разработана в среде программирования Delphi 7.
Функциональное назначение программы: программа предназначена для развлечения.
Используемые технические средства: при разработке программы были использованы следующие технические и программные средства:
- компьютер на базе процессора Intel Pentium 4 3.00 GHz
- объем оперативной памяти 512 Мб
- операционная система Windows XP Professional
Вызов и загрузка: для того, чтобы запустить программу, необходимо запустить файл «Project1.exe».
Для тестирования программы были пройдены все этапы игры.
Контрольный пример предполагал проверку следующих требований:
- возможность открытия приложения,
- отображение рисунков,
- работа счетчика «Вы сбили:».
- возможность перехода игры в режим «Пауза».
Программа тщательно проверялась. Ошибок не найдено.
Вид приложения в случайный момент игры приведен на рисунке 4.
Рисунок 4 - Вид окна приложения в случайный момент игры
Условия выполнения программы: Данное приложение способно работать на персональных компьютерах с минимальными требованиями Pentium 100, оперативной памятью 32 Мб, операционной средой Windows.
Установка программы: в данном приложении не предусмотрен установочный пакет. Поэтому установка заключается в копировании папки содержащей весь состав проекта (см. приложение) с диска, дискеты или другого носителя на жесткий диск компьютера.
Выполнение программы: для загрузки программы необходимо запустить файл «Project1.exe», для старта (повтора) игры следует нажать на кнопку «Поехали». Для того чтобы остановить игру нужно нажать на кнопку клавиатуры – «Esc». Для выхода из программы необходимо нажать Alt+F4 или щелкнуть левой кнопкой мыши по крестику в правом верхнем углу экрана.
Приложение представляет собой очень простой вариант игры «сбей самолет».
Здесь используется цикл таймера для прорисовки объектов игры. Несмотря на то, что программист имеет право по-своему определять какие ему нужны компоненты при разработке приложения, так как главное результат, но данный подход, при котором для прорисовки на поле объектов игры используется цикл таймера не является оптимальным. Таймер имеет погрешность при определении интервала времени, поэтому в игре могут быть заметны мелкие скачки при выводе изображения. Но целью приложения является осуществление вывода графических объектов, поэтому такой подход в данном случае можно использовать.
С помощью именно такого подсчета количества набранных очков, который используется в игре, можно получать довольно разнообразные результаты за одинаковый промежуток времени (времени игры). Это вызывает больший интерес к игре, т. к. игроки могут соревноваться в количестве набранных очков.
Для уменьшения размера исполняемого файла картинки игры загружаются при запуске игры, но из-за этого увеличивается количество файлов необходимых для функциональности приложения.
№ | Новые понятия | Содержание |
1 | Объектно-ориентированное программирование | подход к программированию, рассматривающий программу как совокупность объектов и сообщений |
2 | Объект | пакет информации, содержащий данные и процедуры их обработки. Сообщение – это спецификация условий выполнения одной из процедур обработки объекта |
3 | Язык программирования | система обозначений, служащая для точного описания программ или алгоритмов машинных вычислений. Язык программирования – это искусственный язык, в котором алфавит ( набор различных символов языка), синтаксис (правила построения множества текстов или конструкций языка из алфавита языка) и семантика (описание соответствия между текстами и их «смыслами») строго и однозначно определены |
4 | Операция | действие в языке программирование, которое выполняется над данными |
5 | Структура программы | общая схема построения программы, рассматривающая все ее составные компоненты и взаимосвязи между ними |
6 | Оператор присваивания | оператор языка программирования, предназначенный для вычисления значения заданного выражения и записи в память полученного результата |
7 | Файл | определенным образом организованная совокупность данных, имеющих общее имя и размещенных на одном из внешних устройств компьютера (например, на жестком или гибком дисках) |
8 | Оператор ввода данных | специальный оператор, предназначенный для ввода данных в память из файла, закрепленного за одним из внешних устройств компьютера |
9 | Оператор вывода данных | специальный оператор, предназначенный для вывода данных из памяти в файл, закрепленный за одним из внешних устройств компьютера |
10 | Качествопрограммы | степень соответствия программы своему функциональному назначению с точки зрения предъявляемых к ней требований |
1. Александровский А. Д. Delphi 5.0. Разработка корпоративных приложений. – М.: ДМК, 2007. – 512 с.
2. Бобровский С.И. Delphi 7^ Учебный курс, -СПб.: Издательство «Питер» 2004. – 184 с.
3. Бондарёв В. М., Рублинецкий В. И., Качко Е. Г. «Основы программирования». Харьков: Фолио; Ростов н/Д: Феникс, 2003. – 504 с.
4. Власов А.Я. Справочник по программированию на Object Pascal. Киев, 2006. – 401 с.
5. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. М., 2003. – 220 с.
6. Дарахвелидзе П., Марков Е. Программирование в Delphi 4.СПб.: БХВ. СПб., 2004.- 209 с.
7. Карпов Б. «Delphi: специальный справочник» -СПб.: Издательство «Питер», 2004. – 236 с.
8. Культин Н. «Delphi в задачах и примерах» -СПб.: Издательство «БХВ-Петербург», 2005. – 436 с.
9. Марков Е. «Программирование в Delphi 4», -СПб, «БХВ-Петербург», 2004. – 306 с.
10. Мейер Б., Бодуэн К. Методы программирования. М., 2003. –310 с.
Наименование | Обозначение | Примечание |
Project1.dof | Файл параметров проекта | Содержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы |
Project1.dpr | Файл проекта | Связывает все файлы, из которых состоит приложение |
Project1.cfg | Файл, содержащий настройки проекта | Содержит информацию о том, какие окна открыты и в каких позициях они расположены. |
Project1.res | Файл ресурсов | Содержит пиктограммы, графические изображения |
Unit1.pas | Файл программного модуля для формы Form1 | Определяет функциональность формы Form1 |
Unit1.dfm | Файл формы Form1 | Содержит список свойств всех компонентов, включённых в форму Form1 |
Unit1.dcu | Объектный файл для Unit1.pas | Откомпилированная версия Unit1.pas |
bullet.bmp samolet1.bmp turel.bmp | Файлы рисунков программы | Загружаются во время работы программы |
[1] Для программирования игры «Сбей самолет» использовалась среда Delphi 7.