| Код | program ZVEZDNOE_NEBO; uses graph,crt; var vga,vgahi:integer; n: word; x,y: integer; a : array [1..800] of real; b : array [1..800] of integer; samMask : array [0..3, 0..2] of integer; t: real; samx:integer; samy: real; i,j:integer;
Label label1,label2; BEGIN samMask[0,0]:=1; samMask[0,1]:=1; samMask[0,2]:=0; samMask[1,0]:=0; samMask[1,1]:=1; samMask[1,2]:=0; samMask[2,0]:=1; samMask[2,1]:=1; samMask[2,2]:=1; samMask[3,0]:=0; samMask[3,1]:=1; samMask[3,2]:=0;
t:=0.0;
InitGraph(vga, vgahi ,'c:\prg\bp\bgi'); For n:=1 to 800 do begin a[n]:=Random(1280); b[n]:=Random(1024); end;
samx:=200; samy:=round(500 + 100* sin(Pi*t/200)); t:=0.0; For i:=0 to 3 do begin For j:=0 to 2 do begin if samMask[i,j]=1 then Putpixel(samx+i,round(samy+j),15); end; end;
label1: t:=t; For i:=0 to 3 do begin For j:=0 to 2 do begin if samMask[i,j]=1 then Putpixel(samx+i,round(samy+j),0); end; end;
t:=t+1.0; samy:=round(500 + 100 * sin(Pi * t/200)); For i:=0 to 3 do begin For j:=0 to 2 do begin if samMask[i,j]=1 then Putpixel(samx+i,round(samy+j),15); end; end;
For n:=1 to 800 do begin x:=round(a[n]); Putpixel(x,b[n],0); IF n<=100 then a[n]:=a[n]-1; IF (n>100) and (n<=200) then a[n]:=a[n]-0.8; IF (n>200) and (n<=300) then a[n]:=a[n]-0.6; IF (n>300) and (n<=400) then a[n]:=a[n]-0.4; IF (n>400) and (n<=500) then a[n]:=a[n]-0.2; IF (n>500) then a[n]:=a[n]-0;
x:=round(a[n]); Putpixel(x,b[n],15); IF a[n]<=0 then begin x:=round(a[n]); Putpixel(x,b[n],0); a[n]:=1280; b[n]:=Random(1024); end; end; If KeyPressed=true then goto label2; GOTO label1; label2: Closegraph; end.
|
P.S:
Идея вот в чём: как сделать маску спрайта на ассемблере ? Помогите, пожалуйста ! |