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

Автор работы: Пользователь скрыл имя, 23 Ноября 2009 в 18:54, Не определен

Описание работы

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

Файлы: 1 файл

Пояснительная.doc

— 148.00 Кб (Скачать файл)

         end;

     end;

     //==============================================================================

     procedure FillZap(ind: integer);

     begin

        Su25[ind].X:=random(Form1.Image1.Width-35);

        Su25[ind].Y:=-1;

        Su25[ind].vectX:=random(Form1.Image1.Width div 2);

        Su25[ind].vectY:=Form1.Image1.Height+10;

        Su25[ind].koef_b:=Su25[ind].X;

        Su25[ind].koef_a:=Su25[ind].vectX/Su25[ind].vectY;

     end;

     //==============================================================================

     procedure Calc;

     var i: integer;

     begin

        For i:=1 to n do

         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('graphsamolet1.bmp');

          Su25[i].Gr.TransparentColor:=clRed;

          Su25[i].Gr.Transparent:=true;

        end;

        turel.Gr:=TBitmap.Create;

        turel.Gr.LoadFromFile('graphturel.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('graphbullet.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. 

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

 

     Общие сведения: программа разработана в среде программирования Delphi 7.

     Функциональное  назначение программы: программа предназначена для развлечения.

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

  • компьютер на базе процессора Intel Pentium 4    3.00 GHz
  • объем оперативной памяти 512 Мб
  • операционная система Windows XP Professional

     Вызов и загрузка: для того, чтобы запустить программу, необходимо запустить файл «Project1.exe».

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

 

     Для тестирования программы были пройдены все этапы игры.

     Контрольный пример предполагал проверку следующих  требований:

     - возможность открытия приложения,

     - отображение рисунков,

     - работа счетчика «Вы сбили:».

     - возможность перехода игры в  режим «Пауза».

     Программа тщательно проверялась. Ошибок не найдено.

     Вид приложения в случайный момент игры приведен на рисунке 4. 

     

 

     Рисунок 4 - Вид окна приложения в случайный момент игры

     2.6 Внедрение 

 

     Условия выполнения программы: Данное приложение способно работать на персональных компьютерах с минимальными требованиями Pentium 100, оперативной памятью 32 Мб, операционной средой Windows.

     Установка программы: в данном приложении не предусмотрен установочный пакет. Поэтому установка заключается в копировании папки содержащей весь состав проекта (см. приложение) с диска, дискеты или другого носителя на жесткий диск компьютера.

     Выполнение  программы: для загрузки программы необходимо запустить файл «Project1.exe», для старта (повтора) игры следует нажать на кнопку «Поехали». Для того чтобы остановить игру нужно нажать на кнопку клавиатуры – «Esc». Для выхода из программы необходимо нажать Alt+F4 или щелкнуть левой кнопкой мыши по крестику в правом верхнем углу экрана. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Заключение

 

     Приложение  представляет собой очень простой  вариант игры «сбей самолет».

     Здесь используется цикл таймера для прорисовки объектов игры. Несмотря на то, что программист  имеет право по-своему определять какие ему нужны компоненты при разработке приложения, так как главное результат, но данный подход, при котором для прорисовки на поле объектов игры используется цикл таймера не является оптимальным. Таймер имеет погрешность при определении интервала времени, поэтому в игре могут быть заметны мелкие скачки при выводе изображения. Но целью приложения является осуществление вывода графических объектов, поэтому такой подход в данном случае можно использовать.

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

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

     Глоссарий

 
Новые понятия
    Содержание
1 Объектно-ориентированное  программирование подход к  программированию,  рассматривающий программу  как совокупность объектов и сообщений
2  
Объект
пакет информации, содержащий данные и процедуры их обработки. Сообщение – это спецификация условий выполнения одной из процедур обработки объекта
3  
 
Язык  программирования
система обозначений, служащая для точного описания программ или алгоритмов  машинных вычислений. Язык программирования – это искусственный язык, в  котором алфавит ( набор различных символов языка), синтаксис (правила построения множества текстов или конструкций языка из алфавита языка) и семантика (описание соответствия между текстами и их «смыслами») строго и однозначно определены
4 Операция действие в  языке программирование, которое  выполняется над данными
5 Структура

программы

общая схема  построения программы, рассматривающая все ее составные компоненты и взаимосвязи между ними
6 Оператор  присваивания оператор языка  программирования, предназначенный  для вычисления значения заданного  выражения и записи в память полученного  результата
7  
Файл
определенным образом организованная совокупность данных, имеющих общее имя и размещенных на одном из внешних устройств компьютера (например, на жестком  или гибком дисках)
8 Оператор  ввода данных специальный оператор, предназначенный для ввода данных в память из файла, закрепленного за одним из внешних устройств компьютера
9 Оператор  вывода данных специальный оператор, предназначенный для вывода данных из памяти в файл, закрепленный за одним  из внешних устройств компьютера
10

Качество

программы

степень соответствия программы своему функциональному назначению с точки зрения предъявляемых к ней требований

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