Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Заставка. Дождь, а может и что-то др.

Автор: Alesha_GA 20.07.2003 3:30

Всё пока на стадии «отлова мысли».  :)
Может будет дождь, а может и нет. Но всё будет вывешиваться здесь…

Автор: LOL 20.07.2003 3:53

Это радует !

Автор: Alesha_GA 24.07.2003 4:21

Заставка. Правда не дождь. Когда-то была началом к 3d движку.
smile.gif smile.gif smile.gif smile.gif smile.gif


Код
program d3d;
uses crt,graph;
type
kyyb=record
    x:integer;
    y:integer;
    z:integer;
    end;
kvadro=record
      x:integer;
      y:integer;
      end;
var
dx:array[1..8] of kyyb;
re:array[1..8] of kvadro;
d,r,k:integer;
x,y,i,j:integer;
l:real;
s:integer;
procedure pvz(a:real; dx:kyyb; var re:kyyb);
begin
re.x:=trunc(dx.x*cos(a)-dx.y*sin(a));
re.y:=trunc(dx.x*sin(a)+dx.y*cos(a));
re.z:=trunc(dx.z);
end;
procedure render(dx:kyyb; var re:kvadro);
begin
re.x:=trunc((getmaxx div 2)+dx.x*200/(dx.z+200));
re.y:=trunc((getmaxy div 2)-dx.y*200/(dx.z+200));
end;
procedure visual(a:real);
begin
for i:=1 to 8 do
begin
pvz(a,dx[i],dx[i]);
render(dx[i],re[i]);
end;
for i:=1 to 3 do
begin
line(re[i].x,re[i].y,re[i+1].x,re[i+1].y);
line(re[i+4].x,re[i+4].y,re[i+5].x,re[i+5].y);
end;
line(re[4].x,re[4].y,re[1].x,re[1].y);
line(re[8].x,re[8].y,re[5].x,re[5].y);
for i:=1 to 4 do
begin
line(re[i].x,re[i].y,re[i+4].x,re[i+4].y);
end;
end;

begin
d:=detect;
initgraph(d,r,'');
k:=graphresult;
if k<>grok then
writeln(GraphErrorMsg(k))
ELSE
begin
x:=0;
y:=0;
dx[1].x:=x-60;
dx[1].y:=y+60;
dx[1].z:=-60;
dx[2].x:=x-60;
dx[2].y:=y-60;
dx[2].z:=-60;
dx[3].x:=x+60;
dx[3].y:=y-60;
dx[3].z:=-60;
dx[4].x:=x+60;
dx[4].y:=y+60;
dx[4].z:=-60;
dx[5].x:=x-60;
dx[5].y:=y+60;
dx[5].z:=60;
dx[6].x:=x-60;
dx[6].y:=y-60;
dx[6].z:=60;
dx[7].x:=x+60;
dx[7].y:=y-60;
dx[7].z:=60;
dx[8].x:=x+60;
dx[8].y:=y+60;
dx[8].z:=60;
Setwritemode(xorput);
setcolor(white);
i:=0;
j:=1;
repeat
SetColor(j);
visual(i);
delay(2000);
if i=360 then i:=0 else i:=i+1;
if j=15 then j:=1 else j:=j+1;
until keypressed;
readkey;
end;
closegraph;
end.

Автор: AlaRic 24.07.2003 11:38

Очень неплохо!  ;D