Код:
program TestZXPas;
var
x,y,ggx,ggy:word;
k1,k2:byte;
bally,balldy,balldir:word;
bx,by,bcnt:word;
map:arraybyte[24,32];
begin
border(0);
textbackground(0);
textcolor(7);
clrscr;
VirtScreenClear;
MapSet(MAP,MAPSPRA,0,0,32,24);
x:=4;
y:=1;
bally:=4;
balldy:=1;
balldir:=1;
ggx:=2;
ggy:=16;
bx:=0;
by:=30;
bcnt:=0;
repeat
ReadKey(k1,k2);
if (bally>19) or (bally<4) then begin
if balldir=1 then balldir:=2
else balldir:=1;
end;
if (k1=80) or (k2=80) then
ggx:=ggx+1;
if (k1=79) or (k2=79) then
ggx:=ggx-1;
if ggx+5>29 then
ggx:=29-5;
if ggx < 2 then
ggx:= 2;
MapPut(0,0);
SpritePutClear(ball3a,12,2);
SpritePutMirrorClear(ball3a,16,2);
SpritePutClear(COLORSA,14,5);
SpritePutClear(ball3a,10,bally);
SpritePutAnd(GG1MA2,ggx,ggy);
SpritePutOr(GG1A,ggx,ggy);
{ TextOut(2,0,'ABCDEFGHIJKLMNOPQRSTUVWXYZ');
TextOut(2,1,'0123456789+-=<>');
TextOut(20,2,'TEXT TEST');}
if (k1=32) or (k2=32) then
if bcnt=0 then begin
by:=ggy+2; {// Пуля на 2 знакоместа ниже ГГ}
bx:=ggx+6; {// И на 6 знакомест правее ГГ}
bcnt:=20;
end;
if bcnt<>0 then begin
SpritePutAnd(BULLET1M,bx,by);
SpritePutOr(BULLET1,bx,by);
if bx<32 then
bx:=bx+2;
bcnt:=bcnt-1;
end;
if (k1=50) or (k2=50) then SpritePutClear(DIG2A,6,4) else SpritePutClear(DIG0A,6,4);
if (k1=49) or (k2=49) then SpritePutClear(DIG1A,4,4) else SpritePutClear(DIG0A,4,4);
VirtScreenPut;
Delay(1);
if balldir=1 then bally:=bally+balldy;
if balldir=2 then bally:=bally-balldy;
until (k1=48) or (k2=48) or (k1=69) or (k2=69){ or not ZXInitialized};
ScreenThaw;
Delay(20);
end.
GG1A
DEFB 36
DEFB 0,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,1, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,2, #04, #0F,#07,#03,#03,#07,#1D,#F6,#9B
DEFB 0,3, #04, #FC,#FE,#FF,#EA,#FF,#F5,#FF,#FF
DEFB 0,4, #04, #00,#00,#00,#00,#00,#80,#80,#80
DEFB 0,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 1,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 1,1, #04, #03,#07,#06,#0E,#0F,#1F,#3F,#3F
DEFB 1,2, #04, #ED,#77,#B7,#BF,#7F,#ED,#F6,#7B
DEFB 1,3, #04, #E3,#F0,#F8,#F8,#FC,#FC,#FE,#5F
DEFB 1,4, #04, #80,#00,#00,#00,#00,#00,#00,#00
DEFB 1,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 2,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 2,1, #04, #7F,#7E,#7C,#3F,#3F,#1F,#0F,#07
DEFB 2,2, #04, #68,#DF,#FE,#FD,#5E,#FF,#F5,#EF
DEFB 2,3, #04, #01,#FF,#47,#FF,#7F,#EA,#67,#F3
DEFB 2,4, #04, #0C,#FF,#FF,#AA,#FF,#E0,#E0,#80
DEFB 2,5, #04, #40,#F0,#F0,#BC,#E0,#40,#38,#00
DEFB 3,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 3,1, #04, #03,#00,#00,#00,#00,#01,#01,#01
DEFB 3,2, #04, #1F,#FF,#FF,#FF,#FF,#FC,#FC,#FC
DEFB 3,3, #04, #F8,#FC,#FE,#FF,#FF,#FF,#7F,#1F
DEFB 3,4, #04, #00,#00,#00,#00,#80,#C0,#E0,#F0
DEFB 3,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 4,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 4,1, #04, #01,#01,#03,#07,#0E,#1D,#33,#67
DEFB 4,2, #04, #78,#B8,#70,#F0,#F0,#E0,#C0,#80
DEFB 4,3, #04, #0F,#03,#01,#01,#00,#00,#00,#00
DEFB 4,4, #04, #B8,#58,#B0,#F8,#B8,#B8,#D8,#5C
DEFB 4,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 5,0, #04, #00,#00,#00,#01,#01,#01,#01,#01
DEFB 5,1, #04, #CE,#DC,#F8,#F0,#70,#F8,#FE,#7F
DEFB 5,2, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 5,3, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 5,4, #04, #6C,#2C,#3C,#3C,#2E,#7F,#7F,#67
DEFB 5,5, #04, #00,#00,#00,#00,#00,#80,#E0,#F0
GG1MA2
DEFB 36
DEFB 0,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,1, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FE,#FC
DEFB 0,2, #04, #E0,#F0,#F8,#F8,#F0,#00,#00,#00
DEFB 0,3, #04, #01,#00,#00,#00,#00,#00,#00,#00
DEFB 0,4, #04, #FF,#FF,#7F,#FF,#7F,#3F,#3F,#3F
DEFB 0,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 1,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 1,1, #04, #F8,#F0,#F0,#E0,#E0,#C0,#80,#80
DEFB 1,2, #04, #00,#00,#00,#00,#00,#00,#00,#00
DEFB 1,3, #04, #00,#04,#03,#03,#01,#01,#00,#00
DEFB 1,4, #04, #3F,#7F,#FF,#FF,#FF,#FF,#FF,#73
DEFB 1,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#BF
DEFB 2,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 2,1, #04, #00,#00,#00,#80,#80,#C0,#E0,#F0
DEFB 2,2, #04, #00,#00,#00,#00,#00,#00,#00,#00
DEFB 2,3, #04, #00,#00,#00,#00,#00,#00,#00,#00
DEFB 2,4, #04, #00,#00,#00,#00,#00,#00,#0F,#1F
DEFB 2,5, #04, #0F,#07,#03,#01,#03,#07,#83,#C7
DEFB 3,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 3,1, #04, #F8,#FC,#FE,#FE,#FE,#FC,#FC,#FC
DEFB 3,2, #04, #00,#00,#00,#00,#00,#00,#01,#01
DEFB 3,3, #04, #00,#01,#00,#00,#00,#00,#00,#80
DEFB 3,4, #04, #7F,#FF,#FF,#7F,#3F,#1F,#0F,#07
DEFB 3,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 4,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 4,1, #04, #FC,#FC,#F8,#F0,#E0,#C0,#80,#00
DEFB 4,2, #04, #03,#03,#07,#07,#07,#0F,#1F,#3F
DEFB 4,3, #04, #E0,#F0,#FC,#FC,#FE,#FE,#FE,#FF
DEFB 4,4, #04, #03,#03,#07,#03,#03,#03,#03,#01
DEFB 4,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 5,0, #04, #FE,#FE,#FE,#FC,#FC,#FC,#FC,#FC
DEFB 5,1, #04, #00,#01,#03,#07,#07,#01,#00,#00
DEFB 5,2, #04, #7F,#FF,#FF,#FF,#FF,#FF,#FF,#7F
DEFB 5,3, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 5,4, #04, #01,#81,#81,#81,#80,#00,#00,#00
DEFB 5,5, #04, #FF,#FF,#FF,#FF,#7F,#1F,#0F,#07
BULLET1
DEFB 1
DEFB 0,0, #07, #00,#00,#00,#7C,#7C,#00,#00,#00
BULLET1M
DEFB 1
DEFB 0,0, #07, #FF,#FF,#81,#81,#81,#81,#FF,#FF
BALL3A
DEFB 6
DEFB 0,0, #01, #00,#07,#1F,#3F,#33,#67,#7F,#7F
DEFB 0,1, #02, #00,#E0,#F8,#FC,#FC,#FE,#FE,#FE
DEFB 0,2, #03, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 1,0, #04, #00,#7F,#6F,#27,#33,#1F,#07,#00
DEFB 1,1, #05, #00,#FE,#FE,#FC,#FC,#F8,#E0,#00
DEFB 1,2, #06, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
COLORSA
DEFB 8
DEFB 0,0, #00, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,1, #01, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,2, #02, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,3, #03, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,4, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,5, #05, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,6, #06, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
DEFB 0,7, #07, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
MAPSPRA
DEFB 4
DEFB 0,0, 7, 0, 0, 0, 0, 0, 0, 0, 0
DEFB 0,1, 7, 0, 0, 0, 0, 0, 0, 0, 0
DEFB 1,0, 7, 0, 0, 0, 0, 0, 0, 0, 0
DEFB 1,1, 7, 0, 0, 0, 0, 0, 0, 0, 0
DEFB 4
DEFB 0,0, 7, 85, 1, 1,255, 85, 16, 16,255
DEFB 0,1, 7, 85, 1, 1,255, 85, 16, 16,255
DEFB 1,0, 7, 85, 1, 1,255, 85, 16, 16,255
DEFB 1,1, 7, 85, 1, 1,255, 85, 16, 16,255
DEFB 4
DEFB 0,0, 7, 36, 36, 36, 36, 36, 36, 36, 36
DEFB 0,1, 7, 36, 36, 36, 36, 36, 36, 36, 36
DEFB 1,0, 7, 36, 36, 36, 36, 72,136,136,255
DEFB 1,1, 7, 36, 36, 36, 36, 18, 17, 17,255
DEFB 4
DEFB 0,0, 7, 36, 36, 36, 36, 36, 36, 36, 36
DEFB 0,1, 7, 36, 36, 36, 36, 36, 36, 36, 36
DEFB 1,0, 7, 36, 36, 36, 36, 36, 36, 36, 36
DEFB 1,1, 7, 36, 36, 36, 36, 36, 36, 36, 36
DEFB 4
DEFB 0,0, 7, 127,144,136, 72, 36, 36, 36, 36
DEFB 0,1, 7, 254, 9, 17, 18, 36, 36, 36, 36
DEFB 1,0, 7, 36, 36, 36, 36, 36, 36, 36, 36
DEFB 1,1, 7, 36, 36, 36, 36, 36, 36, 36, 36
_MAP
DEFB 4,3,3,3,3,3,3,3,3,3,2,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,1,1,1,1,1
DEFB 0,0,0,0,0,0,0,1,1,1,1,1
DEFB 0,0,0,0,0,0,0,1,1,1,1,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 0,0,0,0,0,0,0,0,0,0,0,1
DEFB 4,3,3,3,3,3,3,3,3,3,2,1
DIG0A
DEFB 1, 0,0, 7, 0, 28, 34, 42, 42, 34, 28, 0
DIG1A
DEFB 1, 0,0, 7, 0, 24, 56, 24, 24, 24, 60, 0
DIG2A
DEFB 1, 0,0, 7, 0, 60, 66, 2, 28, 32,126, 0