RSS    

   Реферат: Разработка игровой программы на языке программирования Turbo Pascal

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

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

  В  игре «Siege»  мы использовали стандартные средства для работы с графическими изображениями языка программирования Турбо Паскаль. Диалог между компьютером и играющим осуществляется как в  меню, так и во время  самой игры.

 

2. СПЕЦИФИКАЦИЯ ИГРОВОЙ ПРОГРАММЫ «SIEGE»

1.   Название задачи

Компьютерная игра.

Название программы – «Siege».

Система программирования Turbo Pascal.

2.   Описание

Игра начинается с заставки, где написано название игры. Затем следует главное меню, где пользователь может выбрать один из трех пунктов меню: «Play the game», «Instruction», «Story», «Exit to DOS». Если пользователь выбирает первый пункт меню, то после предисловия  он может начать игру. Если он выбирает – второй, то можно ознакомиться с инструкцией.  Если он выберет третий пункт, то он может прочитать предысторию. Иначе пользователь может выйти из игры.  Игрок должен успеть сбрасывать камни на своих врагов, пока они не добрались до верха стены. При неудачном окончании игры, если враг достиг героя, игра заканчивается и выдается сообщение - «Game Over». При выигрыше, если пользователь прошел десять уровней, то он может выйти из игры. 

3. Управление режимами работы программы

Игра осуществляется с помощью меню.

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

Входными данными являются действия играющего во время игры, то есть информация о нажатии клавиш управления курсором для управления героем и для выбора пункта меню, клавиши Esc для выхода из игры, клавиши Enter для выбора пункта меню, клавиши  Space для сброса камней.

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

Сообщение о победе после каждого пройденного уровня «Level complete», о проигрыше  «Game over», либо сообщения, сопровождающие успешные или неуспешные действия игрока «Looser» - неудача, «2 hit combo» - при уничтожение сразу двух врагов, «Ough! 4 mans at once» - при уничтожении сразу четырех врагов, «Aaaaaaaaamazing!!!» -при уничтожении более четырех врагов.

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

 6.Ошибки

При инициализации программы предусмотрена выдача сообщений при  отсутствии VGA совместимого видеоадаптера, ошибки инициализации  графического режима.

3. СТРУКТУРНАЯ ДИАГРАММА

Siege

 


                                                                     

LogoScreen

 

Refrace

 

SiegeSpr

 


3.1 Описание назначения модулей.

S i e g e – основная программа, вызывающая на выполнение программные модули.

Модуль S i e g e S p r -  модуль, содержащий игровые объекты (картинки).

Модуль V G A S p r – модуль для рисования спрайтов.

Модуль L o g o s c r e e n –заставка курсовой работы.

Модуль S i e g e L o g o – модуль, содержащий меню, инструкцию, предысторию.

Модуль B u t t o n s –  модуль, позволяющий осуществлять нажатие и отпускание клавиши, информацию о состоянии клавиш в реальном времени и об отпущенных клавишах.

Модуль R e t r a c e  – модуль,позволяющий осуществлять синхронизацию вывода в видеопамять.

Модуль V G A 1 3 H - модуль для работы с графикой.

ЗАКЛЮЧЕНИЕ

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

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

СПИСОК ИСПОЛЬЗУЕМОЙ  ЛИТЕРАТУРЫ

1.   Игнатьева  А.И. Компьютерные игры. (с. 3-10, 31-35) М. 1988.

2.   Домашний компьютер - №4(с. 62-68),1999

3.   Домашний компьютер - №12(с. 78-88),1999

4.   Инфо–№2: Компьютерные игры в обучение (с.61-65) /Под ред. Марнуми Е., Когов Ю. 1990.

5.   Лукашенко М.А. «Информатика в играх и задачах» (с.1-5) //Нач.шк. /Приложение к газете «1 сентября» - 1994, №44

6.    Инфо-№4: Компьютерная игра: учим или играем (64-67) /Под ред.

Марусева И.В. 1997.

7. Коубс Р. и Влейминк И. Интерфейс (36-40) 1991.

8. Ла Мот А. Секреты программирования игр (7-10) 1995.

9. Фридланд А.Я. Информатика. Толковый словарь основных терминов. (57-62) М. 1998.

10. 350 игр для IBM PC,  Дж. Дворак, «Пергамент» -                      Санкт -Петербург, 1994 .

11. Turbo Pascal 7. 0, Фаронов В.В. /Изд. «Нолидж», 1999.

ПРИЛОЖЕНИЕ:

Program Siege;

Uses LogoScreen,

     DOS, VGA13h, VGASpr, Retrace, Buttons,

     SiegeLogo, SiegeS

pr;

Type

    EnemyType = record

      X,Y,D,S,A:Integer;

      Falling:Boolean;

      Free:Boolean;

    end;

Const

     MaxEnemies = 50;

     ComboStr:Array [0..5] of String[20] =

     ('Looser!!!',

      '',

      '2 hit combo',

      'Eat this!',

      'Ough! 4 mans at once',

      'Aaaaaaaaamazing!!!');

Var

   ManX,StoneY,StoneX,EnemyDelay,EnemyLimit:Integer;

   Enemies:Array [1..MaxEnemies] of EnemyType;

   Score,Level,Kills,Combo:Word;

   Timer:Longint;

   GameOver:Boolean;

{==================================================================}

Const

     ca:Word       = 0;

     cc:String[20] = '';

Procedure ComboString(s:String);

begin

   if s<>'' then

   begin

     cc:=s;

     ca:=10;

   end;

   if ca>0 then

   begin

     DrawString(Base2,160-Byte(cc[0])*4,90,cc);

     Dec(ca);

   end;

end;

Procedure NextLevel; forward;

{==================================================================}

Procedure InitEnemies;

Var

   i:Byte;

begin

   for i:=1 to MaxEnemies do Enemies[i].Free:=true;

end;

Procedure DrawEnemies;

Var

   i:Byte;

begin

   for i:=1 to MaxEnemies do

   With Enemies[i] do if not Free then

     DrawTSpr(Base2,X,Y,EnemyHgt,EnemyWdt,@EnemySpr[A]);

end;

Procedure MoveEnemies;

Var

   i:Byte;

begin

   for i:=1 to MaxEnemies do

   With Enemies[i] do

   if not Free then

   begin

     if Falling then

     begin

       Y:=Y+10;

       if Y>199 then

       begin

         Free:=true;

         if Kills=(Level+1)*20 then NextLevel;

       end;

       if D=0 then

       begin

         Inc(A);

         if A>2 then A:=1;

         D:=2;

       end else Dec(D);

     end else

       if D=0 then

       begin

         Y:=Y-5;

         if Y<40 then GameOver:=true;

         Inc(A);

         if A>2 then A:=1;

         D:=S;

       end else Dec(D);

   end else

   if (EnemyLimit>0) and (EnemyDelay=0) then

   begin

     X:=Random(38)*8;

     Y:=200;

     D:=0;

     S:=(10-Level);

     A:=1;

     EnemyDelay:=(13-Level)*2+1;

     Falling:=false;

     Free:=false;

     Dec(EnemyLimit);

   end;

   Dec(EnemyDelay);

end;

{==================================================================}

Страницы: 1, 2, 3, 4, 5


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.