home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Virtual Reality Homebrewer's Handbook
/
vr.iso
/
vroom
/
namedemo.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-03-19
|
8KB
|
305 lines
program test;
uses swoop,vroom,crt,time;
var s1,w1,o11,p1,v1,r1,m1 : file_object3d;
s,w,o1,o2,p,v,r,o3,o4,m : copy_object3d;
t, tstart, inten : real;
begin
Init_System;
Set_Ambient_Intensity(0.5);
Set_Light(0.75,0,-1,-0.75);
graphics_time:=@t;
t:=GetSecondsTime;
tstart:=t;
Set_View(3000,30,0,0,0,0);
Set_Window(-20,-15,20,15);
s1.Init('s.3d');
s1.Set_Reference_Point(7.5,20,30);
s1.Hide;
w1.Init('w.3d');
w1.Set_Reference_Point(7.5,25,30);
w1.Hide;
o11.Init('o.3d');
o11.Set_Reference_Point(7.5,25,30);
o11.Hide;
p1.Init('p.3d');
p1.Set_Reference_Point(7.5,20,30);
p1.Hide;
v1.Init('v.3d');
v1.Set_Reference_Point(7.5,25,30);
v1.Hide;
r1.Init('r.3d');
r1.Set_Reference_Point(7.5,20,30);
r1.Hide;
m1.Init('w.3d');
m1.Set_Reference_Point(7.5,25,30);
m1.RotateY(180);
m1.Hide;
s.Init(@s1);
w.Init(@w1);
o1.Init(@o11);
o2.Init(@o11);
p.Init(@p1);
v.Init(@v1);
r.Init(@r1);
o3.Init(@o11);
o4.Init(@o11);
m.Init(@m1);
s.MoveTo(0,-85,30);
w.MoveTo(0,-30,30);
o1.MoveTo(0,30,30);
o2.MoveTo(0,90,30);
p.MoveTo(0,145,30);
v.MoveTo(0,-85,-60);
r.MoveTo(0,-30,-60);
o3.MoveTo(0,30,-60);
o4.MoveTo(0,90,-60);
m.MoveTo(0,145,-60);
s.Timed_RotateZ_About(1800,0,30,30,now+10,20);
w.Timed_RotateZ_About(1800,0,30,30,now+10,20);
o1.Timed_RotateZ_About(1800,0,30,30,now+10,20);
o2.Timed_RotateZ_About(1800,0,30,30,now+10,20);
p.Timed_RotateZ_About(1800,0,30,30,now+10,20);
v.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
r.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
o3.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
o4.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
m.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
s.Timed_RotateY_About(1800,0,30,30,now+30,10);
w.Timed_RotateY_About(1800,0,30,30,now+30,10);
o1.Timed_RotateY_About(1800,0,30,30,now+30,10);
o2.Timed_RotateY_About(1800,0,30,30,now+30,10);
p.Timed_RotateY_About(1800,0,30,30,now+30,10);
v.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
r.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
o3.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
o4.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
m.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
while (t-tstart)<=6 do
begin
t:=GetSecondsTime;
inten:=(t-tstart)/5;
if inten>1 then inten:=1;
s.Change_Colour(3,inten);
w.Change_Colour(3,inten);
o1.Change_Colour(3,inten);
o2.Change_Colour(3,inten);
p.Change_Colour(3,inten);
v.Change_Colour(3,inten);
r.Change_Colour(3,inten);
o3.Change_Colour(3,inten);
o4.Change_Colour(3,inten);
m.Change_Colour(3,inten);
redraw_scene;
end;
while (t-tstart)<40 do
begin
t:=GetSecondsTime;
Redraw_Scene;
end;
s.Done;
w.Done;
o1.Done;
o2.Done;
p.Done;
v.Done;
r.Done;
o3.Done;
o4.Done;
m.Done;
s.Init(@s1);
w.Init(@w1);
o1.Init(@o11);
o2.Init(@o11);
p.Init(@p1);
v.Init(@v1);
r.Init(@r1);
o3.Init(@o11);
o4.Init(@o11);
m.Init(@m1);
s.MoveTo(0,-85,30);
w.MoveTo(0,-30,30);
o1.MoveTo(0,30,30);
o2.MoveTo(0,90,30);
p.MoveTo(0,145,30);
v.MoveTo(0,-85,-60);
r.MoveTo(0,-30,-60);
o3.MoveTo(0,30,-60);
o4.MoveTo(0,90,-60);
m.MoveTo(0,145,-60);
while (t-tstart)<=46 do
begin
inten:=(1-(t-tstart)+43)*0.5;
t:=GetSecondsTime;
o4.change_Colour(3,inten);
Redraw_Scene;
end;
{now=46}
o4.Done;
m.Timed_RotateY_About(-90,-7.5,145,-90,now,1);
o3.Timed_RotateX(-90,now+2,1);
o3.Timed_Translate(0,55,-5,now+2,1);
v.addchild(@r);
v.Timed_RotateZ_About(90,0,-57.5,-60,now+4,3);
v.Timed_RotateZ_About(-60,0,-57.5,-60,now+8,2);
v.Timed_RotateZ_About(60,0,-57.5,-60,now+11,2);
v.Timed_Translate(0,95.5,0,now+13,3);
while (t-tstart)<63 do
begin
t:=GetSecondsTime;
Redraw_Scene;
end;
v.addchild(@o3);
v.addchild(@m);
v.Timed_Translate(0,250,0,now,5);
while (t-tstart)<69 do
begin
t:=GetSecondsTime;
Redraw_Scene;
end;
v.removechild(@o3);
v.removechild(@m);
o3.done;
m.done;
v.RotateZ_About(-90,0,288,-60);
s.Timed_RotateX_About(-24.7,0,-85,0,now,1);
w.Timed_RotateX_About(-24.7,0,-85,0,now,1);
o1.Timed_RotateX_About(-24.7,0,-85,0,now,1);
o2.Timed_RotateX_About(-24.7,0,-85,0,now,1);
p.Timed_RotateX_About(-24.7,0,-85,0,now,1);
s.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
w.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
o1.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
o2.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
p.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
while (t-tstart)<73 do
begin
t:=GetSecondsTime;
Redraw_Scene;
end;
s.Done;
w.Done;
o1.Done;
o2.Done;
p.Done;
s.Init(@s1);
w.Init(@w1);
o1.Init(@o11);
o2.Init(@o11);
p.Init(@p1);
s.MoveTo(0,-85-19.74,-60);
w.MoveTo(0,-30-19.74,-60);
o1.MoveTo(0,30-19.74,-60);
o2.MoveTo(0,90-19.74,-60);
p.MoveTo(0,145-19.74,-60);
v.timed_translate(0,-85,0,now,3);
while (t-tstart)<76 do
begin
t:=GetSecondsTime;
Redraw_Scene;
end;
v.addchild(@s);
v.addchild(@w);
v.addchild(@o1);
v.addchild(@o2);
v.addchild(@p);
v.timed_translate(0,-35,0,now,1);
while (t-tstart)<78 do
begin
t:=GetSecondsTime;
Redraw_Scene;
end;
while (t-tstart)<80 do
begin
t:=GetSecondsTime;
v.scale_about(1,1,(t-tstart-78)*0.03+1,0,0,-90);
Redraw_Scene;
end;
v.removechild(@s);
v.removechild(@w);
v.removechild(@o1);
v.removechild(@o2);
v.removechild(@p);
v.removechild(@r);
s.Timed_RotateZ_At(-90,now+5,infinity);
w.Timed_RotateZ_At(-90,now+5,infinity);
o1.Timed_RotateZ_At(-90,now+5,infinity);
o2.Timed_RotateZ_At(-90,now+5,infinity);
p.Timed_RotateZ_At(-90,now+5,infinity);
v.Timed_RotateZ_At(-90,now+5,infinity);
r.Timed_RotateZ_At(-90,now+5,infinity);
while (t-tstart)<100 do
begin
t:=GetSecondsTime;
Redraw_Scene;
end;
while (t-tstart)<=120 do
begin
t:=GetSecondsTime;
inten:=1-((t-tstart-110)/10);
if inten>1 then inten:=1;
s.Change_Colour(3,inten);
w.Change_Colour(3,inten);
o1.Change_Colour(3,inten);
o2.Change_Colour(3,inten);
p.Change_Colour(3,inten);
v.Change_Colour(3,inten);
r.Change_Colour(3,inten);
o3.Change_Colour(3,inten);
o4.Change_Colour(3,inten);
m.Change_Colour(3,inten);
redraw_scene;
end;
s.Done;
w.Done;
o1.Done;
o2.Done;
p.Done;
v.Done;
r.Done;
s1.Done;
w1.Done;
o11.Done;
p1.Done;
v1.Done;
r1.Done;
m1.Done;
stop_graphics;
end.