Создание компьютерной игры на языке Pascal

Создание компьютерной игры с перемещением динамических объектов по экрану на языке Pascal. Создание меню, основного тела игры в виде отдельной процедуры с прорисовкой текстур в отдельной процедуре. Руководство пользователя для работы в программе.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 04.06.2012
Размер файла 11,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Содержание

Введение

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

2. Описание данных

3. Алгоритмы и блок-схемы

4. Программа на языке Pascal с комментариями

5. Руководство пользователя для работы в программе

Заключение

Список использованной литературы

ВВЕДЕНИЕ

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

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

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

Требуется создать игру, основным смыслом которой является то, что в одной части экрана перемещаются объект одного типа(«Самолёт»), а в другой части экрана находится объект другого типа(«Средство противовоздушной обороны»), и «Средство ПВО» должно сбивать «Самолёт».

а) Выбор, обоснование и изложение метода решения задачи.

Я предпочёл использование динамической памяти, прорисовку текстур в отдельной процедуре.

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

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

б) Построение алгоритма задачи.

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

Далее в зависимости от нажатых клавиш динамические объекты двигаются так или иначе.

в) Создание и отладка программы.

Создание программы состояло из трёх этапов: создание меню, создание основного тела игры в виде отдельной процедуры без прорисовки текстур и окончательная прорисовка текстур.

г) Оформление пояснительной записки и защита курсового проекта.

2. Описание данных:

Size1, Size2, Size3, Size4 - переменные целого типа, которые хранят в себе область, выделяемую для динамических переменных.

Pustota, Sam1, Rocket, F16 - динамические переменные, которые хранят в себе объекты игры.

Key - булиновая переменная, принимает значение TRUE при нажатии клавиш.

Name, Head, Cl - строковые переменные, записываемые в файл :

NAME - хранит имя игрока, вводимое с клавиатуры;

HEAD и CL - содержат строку, представляющую из себя совокупность дискрипторов языка HTML, которые, после записи в файл, преобразовывают его в HTML страницу.

F1 - файловая переменная

Event - переменная, описывающая события (тип : Tevent);

3. Блок-схема

4. Программа на языке Pascal c комментариями

Uses Crt,App,Dialogs,Objects,Drivers,Views,Graph;

Procedure Super_Mega_Game;

Label b1;

var Driver1,Mode,Size,Size2,x,y,size3,n,xs,d2,d11,d12,m,xt,p,h,Size4:Integer; s:char; Pustota,Sam1,Rocket,F16:Pointer; key:boolean; Name,Head,Cl:String; F1:Text;

begin

Randomize;

xs:=1;

Driver1:=Detect;

Mode:=Detect;

InitGraph(Driver1,Mode,'');

ClearDevice;

SetBkColor(3);

Size:=ImageSize(0,0,53,53);

GetMem(Pustota,size);

GetImage(0,0,53,53,Pustota^);

Size2:=ImageSize(640,0,600,40);

GetMem(Sam1,Size2);

SetColor(Yellow);

Line(605,35,630,35);

LIne(630,35,635,40);

LIne(600,40,605,35);

Line(600,40,635,40);

Line(615,35,615,29);

Line(615,29,620,35);

SetColor(6);

Line(610,32,620,24);

Line(610,29,620,21);

SetColor(Red);

Line(620,24,624,20);

Line(620,21,624,20);

Arc(610,30,0,90,2);

GetImage(640,0,600,40,Sam1^);

Size4:=ImageSize(100,100,150,150);

GetMem(F16,Size4);

{КОРПУС}

SetColor(6);

Line(105,120,135,120);

Line(105,114,130,114);

{КАБИНА}

Setcolor(Blue);

Arc(131,117,0,90,3);

Setcolor(6);

Line(134,117,144,118);

Line(134,120,144,118);

{ПЕРВОЕ КРЫЛО}

Line(115,119,113,130);

Line(113,130,117,130);

Line(117,130,121,119);

Line(115,119,121,119);

{ХВОСТ}

Line(105,114,101,110);

Line(101,110,105,120);

{ВТОРОЕ КРЫЛО}

Line(119,114,117,109);

Line(117,109,113,109);

Line(113,109,114,114);

GetImage(100,100,150,150,F16^);

PutImage(100,100,Pustota^,NormalPut);

PutImage(585,10,Pustota^,NormalPut);

Size3:=ImageSize(640,0,600,40);

GetMem(Rocket,Size3);

SetColor(6);

Line(610,32,620,24);

Line(610,29,620,21);

SetColor(Red);

Line(620,24,624,20);

Line(620,21,624,20);

Arc(610,30,0,90,2);

GetImage(640,0,600,40,Rocket^);

Setcolor(6);

Line(1,460,640,460);

x:=6;

y:=400;

n:=0;

m:=0;

xt:=5;

p:=1;

h:=0;

PutImage(x,y,Sam1^,NormalPut);

PutImage(585,10,Pustota^,NormalPut);

RepeatRepeatif p=1 then begin Delay(100); PutImage(xt,100,F16^,NormalPut); xt:=xt+1; h:=h+1; if h=550 then p:=0; end;if p=0 then begin delay(100); PutImage(xt,100,F16^,NormalPut); xt:=xt-1; h:=h-1; if h=0 then p:=1; end;key:=KeyPressed;if (key=True) then goto b1;until s=chr(27);

b1:

s:=ReadKey;

if s=chr(77) then x:=x+4;

if s=chr(75) then x:=x-4;

if s=chr(72) then begin Repeat PutImage(x+51+n,y-35-n,RocKet^,NormalPut); inc(n); PutImage(x+51+n,y-35-n,Pustota^,NormalPut); if (x+51+n)=550 then n:=300; until n=300; PutImage(x+n,y-35-n,Pustota^,NormalPut); if ((y+51+n)>100) and ((x+51+n)>(xt-10)) and ((x+51+n)<(xt+60)) then begin OutTextXY(250,200,'F16-vipe out!!!'); s:=chr(27); end; n:=0; end;

PutImage(x-4,y,Pustota^,NormalPut);

PutImage(x,y,Sam1^,NormalPut);

until s=chr(27);

readln;

CloseGraph;

TextColor(Green);

Write('Input Your Name: ');

Readln(Name);

Head:='<html> <body bgcolor=#AA4400> <center> <B> Winer!!! </B> </center> <br> <br>';

Cl:='</i><br> </body> </html>';

Head:=concat(Head,'<I> MegaMen: ',name,cl);

assign(F1,'Namer.htm');

Rewrite(f1);

Write(f1,head);

Close(f1);

end;

type

PProg=^TProg;

TProg=object(TApplication)

Constructor Init;

end;

Pdial=^TDial;

TDial=object(Tdialog)

Procedure HandleEvent (var Event:TEvent);

Virtual;

end;

constcmPrint = 100;

Constructor TProg.Init;

varR:TRect;Dia:Pdial;g:char;

begin

Inherited Init;

R.assign(20,9,60,17);

Dia:=New(PDial,Init(R,''));

R.assign(3,4,22,6);

Dia^.Insert(New(PButton,Init(R,'Start Game',cmPrint,bfDefault)));

R.assign(23,4,35,6);

Dia^.Insert(New(PButton,Init(R,'Quit',cmCancel,bfNormal)));

if execView(Dia)=cmPrint then begin Super_Mega_Game; Writeln('Press "b" for back to main menu'); repeat g:=ReadKey; if g='b' then begin clrscr; end; until g='b'; Writeln('Press "Alt-x" for Quit'); end;

end;

Procedure TDial.HandleEvent (var Event:TEvent);

begin

Inherited HandleEvent(Event);

if (Event.What=evCommand) and (Event.Command=cmPrint) then EndModal(cmPrint);

end;

Procedure Batva;

var

Prog:TProg;

begin

Prog.Init;

Prog.Run;

Prog.Done;

end;

begin

batva;

end.

5. Руководство пользователя для работы в программе

При запуске программы появляется меню, предлагающее широкий выбор пунктов.

Курсор перемещается при помощи клавиш курсора, выбор осуществляется клавишей ENTER .

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

Суть игры заключается в сбивании самолётов средством ПВО.

Средство ПВО может с помощью курсора перемещаться по экрану в горизонтальном направлении. При нажатии клавиши «пробел» средство ПВО совершает выстрел. Если снаряд попадает в то появляется надпись-“F-16 wipe out”. После того, как самолёт сбит вам предлагается написать своё имя, а затем просит нажать “b” -которая выводит вас на экран, на котором при нажатии ALT+X выводит вас из программы.

компьютерный игра текстура программа

Заключение

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

Длителен также процесс детальной прорисовки графики.

Необходимо, чтобы в той папке, где лежит данная программа, находился файл egavga.bgi . Этот файл имеется во многих версиях ТР в папке bin, он отвечает за инициализацию графики.

Список использованной литературы.

1. Меженный О.А. «Turbo Pascal-учитесь программировать»; Москва-С. Петербург-Киев; «Диалектика»; 2001; 448с.

2. Бабушкин И.А.; «Практикум по ТР» - учебное пособие по курсам ИВТ; Москва, 1998.

3. http://www.freepascal.org;

4. http://www.geocities.com/~franzglaser/tp.htm;

5. http://www.garbo.uwasa.fi/pc/turboobj.html;

Размещено на Allbest.ru


Подобные документы

  • Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов.

    курсовая работа [2,1 M], добавлен 23.02.2011

  • Характеристика вычислительной системы и инструментов разработки. Программирование на языке Pascal в среде Turbo Pascal и на языке Object Pascal в среде Delphi. Использование процедур, функций, массивов, бинарного поиска. Создание базы данных в виде файла.

    отчет по практике [2,1 M], добавлен 02.05.2014

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.

    дипломная работа [3,3 M], добавлен 18.02.2017

  • Описание правил игры "Морской бой". Особенности современных компьютеров и искусственного интеллекта. Создание общей блок-схемы программы, ее внешний вид. Необходимые переменные, процедуры и функции. Характеристика объектов, используемых в приложении.

    курсовая работа [950,1 K], добавлен 05.11.2012

  • Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.

    курсовая работа [821,5 K], добавлен 13.02.2012

  • Основы работы на языке высокого уровня Turbo Pascal. Основное оборудование и программное обеспечение. Операторы, необходимы для работы в графической среде Turbo Pascal. Запуск графического режима. Текст программы в графической среде Turbo Pascal.

    лабораторная работа [12,7 K], добавлен 14.05.2011

  • Разработка программы казуальной игры "Zuma Deluxe" на языке С\С++. Использование стиля древних инков и ацтеков, возможностей графического движка HGE version 1.53. Назначение основных классов игры. Руководство пользователя, содержание главного меню.

    курсовая работа [8,3 M], добавлен 28.10.2014

  • Язык программирования Pascal и его турбооболочка. Аналитический обзор игрового программного обеспечения. Функции модуля Crt. Постановка задачи создания несложной игровой программы "Турбозмей", алгоритм реализации и описание пользовательского интерфейса.

    курсовая работа [100,4 K], добавлен 15.05.2014

  • Реализация основных алгоритмических структур. Усеченный условный оператор и оператор exit. Цикл с параметром (счетный цикл). Распечатка таблиц функций. Средства разработки программ на языке Free Pascal. Разработка игрового приложения "Быки и коровы".

    курсовая работа [1,9 M], добавлен 23.12.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.