- •Кафедра втау Курсовая работа
- •Описание работы программы
- •2. Текст программы с комментариями
- •Тело игры
- •Завершение игры
- •Основной модуль
- •Interface
- •Implementation
- •Модуль управления клавиатурой
- •Interface
- •Implementation
- •Модуль управления мышью
- •Interface
- •Модуль звуков
- •Interface
- •Implementation
Тело игры
sc:=0; Pole;
Telega; Ball;
repeat
Telega; Ball; Score(sc,7);
if Mouse=False then begin
if GetKey(kbRight) then MoveK(TS);
if GetKey(kbLeft) then MoveK(-TS); end;
if Mouse=True then MoveM(TS);
ActiveBall;
CheckRange;
CheckBricks;
if CheckLose then begin InitVars; {InitBricks; DrawBricks;}
SetColor(4); OutTextXY(MaxX div 2-50,250,'TRY AGAIN !'); Delay(3000);
SetColor(0); OutTextXY(MaxX div 2-50,250,'TRY AGAIN !');
end;
if CheckWin then begin ClearDevice; InitVars; InitBricks; DrawBricks; Pole;
end;
Telega; Ball;
dPause:=dPause+0.0001;
Delay(30);
if dPause>20 then dPause:=0;
until GetKey(kbEsc);
end;
procedure DoneGame;
Завершение игры
DoneKBD;
CloseGraph;
end;
Основная
программа: InitKBD
– инициализирует
клавиатуру Zastavka
– выводит
на экран заголовок программы и главное
меню InitGame
–
присвоение
начальных значений переменным, полям
записей, описывающих кирпичи, вывод
кирпичей на экран. GameRun
– тело
игры
begin
InitKBD;
Zastavka;
InitGame;
GameRun;
DoneGame;
end.
Основной модуль
unit ArcUnit;
Interface
var Mouse:boolean;
procedure Zastavka;
procedure OutMenuStr(ns,CF: word);
procedure RunMenu;
procedure Menu;
procedure Help;
Implementation
uses graph, Crt, ArcUnitK;
const MaxNs = 2;
procedure Zastavka;
var drv,mode: Integer;
begin
drv:=vga;
mode:=2;
initgraph(drv,mode,'c:\progra~1\borland\tp\bgi');
setbkcolor(blue);
setcolor(red);
settextstyle(4,0,10);
outtextxy(95,100,'Arcanoid');
setcolor(white);
settextstyle(3,0,0);
outtextxy(150,250,'Esc - begin game');
outtextxy(150,285,'F1 - help');
outtextxy(150,310,'F2 - control');
repeat ReadKey;
if GetKey(kbEsc) or GetKey(13) then begin Break; Exit; end;
if GetKey(60) then begin Menu; Break; end;
if GetKey(59) then begin Help; Break; end;
until KeyPressed;
end;
{--------------------------}
procedure OutMenuStr(ns,CF: word);
var im : word;
Begin
GotoXY( 28,7); Write('Выбор управления');
Вывод
меню выбора управления
case ns of
1:begin GotoXY(20,10); for im:=1 to 30 do Write(' ');
GotoXY(20,10); Write('1.Управление с клавиатуры.');
end;
2:begin GotoXY(20,11); for im:=1 to 30 do Write(' ');
GotoXY(20,11); Write('2.Управление мышью.');
end;
end;
End;
procedure RunMenu;
v
Циклический
вывод на экран меню выбора управления
begin
ClrScr; for i:=1 to MaxNs do OutMenuStr(i,0);
end;
var ns : word; Ch : char;
p
Организация
меню выбора управления
Begin
closegraph;
RunMenu; ns:=1;
repeat
if ns<>0 then OutMenuStr(ns,7);
Ch:=ReadKey;
if ns<>0 then OutMenuStr(ns,0);
case Ch of
#0:begin Ch:=ReadKey;
case Ch of
#72:if ns<>0 then if ns>1 then ns:=ns-1 else ns:=MaxNs;
#80:if ns<>0 then if ns<MaxNs then ns:=ns+1 else ns:=1;
end;
end;
#13:case ns of
1:begin Mouse:=False; Break; Zastavka end;
2:begin Mouse:=True; Break; Zastavka end;
end;
#27: begin Break; Zastavka end;
end;
until FALSE;
TextBackGround(0); ClrScr; Zastavka
End;
procedure Help;
begin
closegraph;
Вывод
справки
ClrScr;
Textcolor(White);
GotoXY( 35,2); Write('HELP');
GotoXY( 25,7); Write(' Управление с клавиатуры: ');
GotoXY( 25,9); Write('Действие Клавиша');
GotoXY( 25,10); Write('Влево a');
GotoXY( 25,11); Write('Вправо d');
GotoXY( 25,14); Write('Выход во время игры Esc');
GotoXY( 30,20); Write('Press Enter to Exit');
ReadLn; ClrScr; Zastavka;
end;
end.
