home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Homebrewer's Handbook / vr.iso / vroom / namedemo.pas < prev    next >
Pascal/Delphi Source File  |  1996-03-19  |  8KB  |  305 lines

  1. program test;
  2.  
  3. uses swoop,vroom,crt,time;
  4.  
  5. var s1,w1,o11,p1,v1,r1,m1 : file_object3d;
  6.     s,w,o1,o2,p,v,r,o3,o4,m : copy_object3d;
  7.     t, tstart, inten : real;
  8.  
  9. begin
  10.      Init_System;
  11.  
  12.      Set_Ambient_Intensity(0.5);
  13.      Set_Light(0.75,0,-1,-0.75);
  14.      graphics_time:=@t;
  15.  
  16.      t:=GetSecondsTime;
  17.      tstart:=t;
  18.  
  19.      Set_View(3000,30,0,0,0,0);
  20.      Set_Window(-20,-15,20,15);
  21.  
  22.      s1.Init('s.3d');
  23.      s1.Set_Reference_Point(7.5,20,30);
  24.      s1.Hide;
  25.      w1.Init('w.3d');
  26.      w1.Set_Reference_Point(7.5,25,30);
  27.      w1.Hide;
  28.      o11.Init('o.3d');
  29.      o11.Set_Reference_Point(7.5,25,30);
  30.      o11.Hide;
  31.      p1.Init('p.3d');
  32.      p1.Set_Reference_Point(7.5,20,30);
  33.      p1.Hide;
  34.      v1.Init('v.3d');
  35.      v1.Set_Reference_Point(7.5,25,30);
  36.      v1.Hide;
  37.      r1.Init('r.3d');
  38.      r1.Set_Reference_Point(7.5,20,30);
  39.      r1.Hide;
  40.      m1.Init('w.3d');
  41.      m1.Set_Reference_Point(7.5,25,30);
  42.      m1.RotateY(180);
  43.      m1.Hide;
  44.  
  45.      s.Init(@s1);
  46.      w.Init(@w1);
  47.      o1.Init(@o11);
  48.      o2.Init(@o11);
  49.      p.Init(@p1);
  50.      v.Init(@v1);
  51.      r.Init(@r1);
  52.      o3.Init(@o11);
  53.      o4.Init(@o11);
  54.      m.Init(@m1);
  55.  
  56.      s.MoveTo(0,-85,30);
  57.      w.MoveTo(0,-30,30);
  58.      o1.MoveTo(0,30,30);
  59.      o2.MoveTo(0,90,30);
  60.      p.MoveTo(0,145,30);
  61.  
  62.      v.MoveTo(0,-85,-60);
  63.      r.MoveTo(0,-30,-60);
  64.      o3.MoveTo(0,30,-60);
  65.      o4.MoveTo(0,90,-60);
  66.      m.MoveTo(0,145,-60);
  67.  
  68.      s.Timed_RotateZ_About(1800,0,30,30,now+10,20);
  69.      w.Timed_RotateZ_About(1800,0,30,30,now+10,20);
  70.      o1.Timed_RotateZ_About(1800,0,30,30,now+10,20);
  71.      o2.Timed_RotateZ_About(1800,0,30,30,now+10,20);
  72.      p.Timed_RotateZ_About(1800,0,30,30,now+10,20);
  73.      v.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
  74.      r.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
  75.      o3.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
  76.      o4.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
  77.      m.Timed_RotateZ_About(-1800,0,30,-60,now+10,20);
  78.  
  79.      s.Timed_RotateY_About(1800,0,30,30,now+30,10);
  80.      w.Timed_RotateY_About(1800,0,30,30,now+30,10);
  81.      o1.Timed_RotateY_About(1800,0,30,30,now+30,10);
  82.      o2.Timed_RotateY_About(1800,0,30,30,now+30,10);
  83.      p.Timed_RotateY_About(1800,0,30,30,now+30,10);
  84.      v.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
  85.      r.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
  86.      o3.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
  87.      o4.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
  88.      m.Timed_RotateY_About(-1800,0,30,-60,now+30,10);
  89.  
  90.      while (t-tstart)<=6 do
  91.      begin
  92.           t:=GetSecondsTime;
  93.           inten:=(t-tstart)/5;
  94.           if inten>1 then inten:=1;
  95.           s.Change_Colour(3,inten);
  96.           w.Change_Colour(3,inten);
  97.           o1.Change_Colour(3,inten);
  98.           o2.Change_Colour(3,inten);
  99.           p.Change_Colour(3,inten);
  100.           v.Change_Colour(3,inten);
  101.           r.Change_Colour(3,inten);
  102.           o3.Change_Colour(3,inten);
  103.           o4.Change_Colour(3,inten);
  104.           m.Change_Colour(3,inten);
  105.           redraw_scene;
  106.      end;
  107.  
  108.      while (t-tstart)<40 do
  109.      begin
  110.           t:=GetSecondsTime;
  111.           Redraw_Scene;
  112.      end;
  113.  
  114.      s.Done;
  115.      w.Done;
  116.      o1.Done;
  117.      o2.Done;
  118.      p.Done;
  119.      v.Done;
  120.      r.Done;
  121.      o3.Done;
  122.      o4.Done;
  123.      m.Done;
  124.      s.Init(@s1);
  125.      w.Init(@w1);
  126.      o1.Init(@o11);
  127.      o2.Init(@o11);
  128.      p.Init(@p1);
  129.      v.Init(@v1);
  130.      r.Init(@r1);
  131.      o3.Init(@o11);
  132.      o4.Init(@o11);
  133.      m.Init(@m1);
  134.  
  135.      s.MoveTo(0,-85,30);
  136.      w.MoveTo(0,-30,30);
  137.      o1.MoveTo(0,30,30);
  138.      o2.MoveTo(0,90,30);
  139.      p.MoveTo(0,145,30);
  140.  
  141.      v.MoveTo(0,-85,-60);
  142.      r.MoveTo(0,-30,-60);
  143.      o3.MoveTo(0,30,-60);
  144.      o4.MoveTo(0,90,-60);
  145.      m.MoveTo(0,145,-60);
  146.  
  147.      while (t-tstart)<=46 do
  148.      begin
  149.           inten:=(1-(t-tstart)+43)*0.5;
  150.           t:=GetSecondsTime;
  151.           o4.change_Colour(3,inten);
  152.           Redraw_Scene;
  153.      end;
  154.  
  155.      {now=46}
  156.      o4.Done;
  157.      m.Timed_RotateY_About(-90,-7.5,145,-90,now,1);
  158.      o3.Timed_RotateX(-90,now+2,1);
  159.      o3.Timed_Translate(0,55,-5,now+2,1);
  160.      v.addchild(@r);
  161.      v.Timed_RotateZ_About(90,0,-57.5,-60,now+4,3);
  162.      v.Timed_RotateZ_About(-60,0,-57.5,-60,now+8,2);
  163.      v.Timed_RotateZ_About(60,0,-57.5,-60,now+11,2);
  164.      v.Timed_Translate(0,95.5,0,now+13,3);
  165.  
  166.      while (t-tstart)<63 do
  167.      begin
  168.           t:=GetSecondsTime;
  169.           Redraw_Scene;
  170.      end;
  171.  
  172.      v.addchild(@o3);
  173.      v.addchild(@m);
  174.      v.Timed_Translate(0,250,0,now,5);
  175.  
  176.      while (t-tstart)<69 do
  177.      begin
  178.           t:=GetSecondsTime;
  179.           Redraw_Scene;
  180.      end;
  181.  
  182.      v.removechild(@o3);
  183.      v.removechild(@m);
  184.      o3.done;
  185.      m.done;
  186.      v.RotateZ_About(-90,0,288,-60);
  187.  
  188.      s.Timed_RotateX_About(-24.7,0,-85,0,now,1);
  189.      w.Timed_RotateX_About(-24.7,0,-85,0,now,1);
  190.      o1.Timed_RotateX_About(-24.7,0,-85,0,now,1);
  191.      o2.Timed_RotateX_About(-24.7,0,-85,0,now,1);
  192.      p.Timed_RotateX_About(-24.7,0,-85,0,now,1);
  193.      s.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
  194.      w.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
  195.      o1.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
  196.      o2.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
  197.      p.Timed_RotateX_About(24.7,0,110.26,-90,now+2,1);
  198.  
  199.      while (t-tstart)<73 do
  200.      begin
  201.           t:=GetSecondsTime;
  202.           Redraw_Scene;
  203.      end;
  204.  
  205.      s.Done;
  206.      w.Done;
  207.      o1.Done;
  208.      o2.Done;
  209.      p.Done;
  210.      s.Init(@s1);
  211.      w.Init(@w1);
  212.      o1.Init(@o11);
  213.      o2.Init(@o11);
  214.      p.Init(@p1);
  215.      s.MoveTo(0,-85-19.74,-60);
  216.      w.MoveTo(0,-30-19.74,-60);
  217.      o1.MoveTo(0,30-19.74,-60);
  218.      o2.MoveTo(0,90-19.74,-60);
  219.      p.MoveTo(0,145-19.74,-60);
  220.  
  221.      v.timed_translate(0,-85,0,now,3);
  222.  
  223.      while (t-tstart)<76 do
  224.      begin
  225.           t:=GetSecondsTime;
  226.           Redraw_Scene;
  227.      end;
  228.  
  229.      v.addchild(@s);
  230.      v.addchild(@w);
  231.      v.addchild(@o1);
  232.      v.addchild(@o2);
  233.      v.addchild(@p);
  234.      v.timed_translate(0,-35,0,now,1);
  235.  
  236.      while (t-tstart)<78 do
  237.      begin
  238.           t:=GetSecondsTime;
  239.           Redraw_Scene;
  240.      end;
  241.  
  242.      while (t-tstart)<80 do
  243.      begin
  244.           t:=GetSecondsTime;
  245.           v.scale_about(1,1,(t-tstart-78)*0.03+1,0,0,-90);
  246.           Redraw_Scene;
  247.      end;
  248.  
  249.      v.removechild(@s);
  250.      v.removechild(@w);
  251.      v.removechild(@o1);
  252.      v.removechild(@o2);
  253.      v.removechild(@p);
  254.      v.removechild(@r);
  255.  
  256.      s.Timed_RotateZ_At(-90,now+5,infinity);
  257.      w.Timed_RotateZ_At(-90,now+5,infinity);
  258.      o1.Timed_RotateZ_At(-90,now+5,infinity);
  259.      o2.Timed_RotateZ_At(-90,now+5,infinity);
  260.      p.Timed_RotateZ_At(-90,now+5,infinity);
  261.      v.Timed_RotateZ_At(-90,now+5,infinity);
  262.      r.Timed_RotateZ_At(-90,now+5,infinity);
  263.  
  264.      while (t-tstart)<100 do
  265.      begin
  266.           t:=GetSecondsTime;
  267.           Redraw_Scene;
  268.      end;
  269.  
  270.      while (t-tstart)<=120 do
  271.      begin
  272.           t:=GetSecondsTime;
  273.           inten:=1-((t-tstart-110)/10);
  274.           if inten>1 then inten:=1;
  275.           s.Change_Colour(3,inten);
  276.           w.Change_Colour(3,inten);
  277.           o1.Change_Colour(3,inten);
  278.           o2.Change_Colour(3,inten);
  279.           p.Change_Colour(3,inten);
  280.           v.Change_Colour(3,inten);
  281.           r.Change_Colour(3,inten);
  282.           o3.Change_Colour(3,inten);
  283.           o4.Change_Colour(3,inten);
  284.           m.Change_Colour(3,inten);
  285.           redraw_scene;
  286.      end;
  287.  
  288.      s.Done;
  289.      w.Done;
  290.      o1.Done;
  291.      o2.Done;
  292.      p.Done;
  293.      v.Done;
  294.      r.Done;
  295.      s1.Done;
  296.      w1.Done;
  297.      o11.Done;
  298.      p1.Done;
  299.      v1.Done;
  300.      r1.Done;
  301.      m1.Done;
  302.  
  303.      stop_graphics;
  304.  
  305. end.