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

  1. program forest;
  2.  
  3. uses vroom,crt,dos,cyberman;
  4.  
  5. var tree : array[1..500] of file_object3d;
  6.     t, tree1 : integer;
  7.     x,z, tnow : real;
  8.     mouse, cyber, junk : boolean;
  9.  
  10. begin
  11.      mouse:=false;
  12.      cyber:=false;
  13.      if cyberman_available then cyber:=true else if mouse_available then mouse:=true;
  14.      randomize;
  15.      repeat
  16.            writeln('How many trees do you want? ');
  17.            readln(tree1);
  18.      until (tree1>0) and (tree1<500);
  19.      Init_System;
  20.  
  21.      Set_Ambient_Intensity(0.5);
  22.      Set_Light(0.75,0,1,-0.75);
  23.      Set_View(200,0,5,-90,0,0);
  24.      Set_Window(-20,-15,20,15);
  25.      Store_Settings;
  26.  
  27.      for t:=1 to tree1 do
  28.      begin
  29.           tree[t].Init('fir2.3d');
  30.           tree[t].Set_Reference_Point(0,0,0);
  31.           tree[t].RotateX(90);
  32.           tree[t].Scale(0.05,0.05,0.05);
  33.           tree[t].Build_Normals;
  34.           tree[t].MoveTo(random*400,random*400,0);
  35.           x:=random+0.5;
  36.           z:=random+0.5;
  37.           tree[t].Scale(x,x,z);
  38.      end;
  39. {
  40.      for t:=1 to 20 do
  41.      begin
  42.           other_tree[t].Init('tree1.3d');
  43.           other_tree[t].Set_Reference_Point(0,-5,0);
  44.           other_tree[t].RotateX(90);
  45.           other_tree[t].Scale(1.1,1.1,1.1);
  46.           other_tree[t].Build_Normals;
  47.           other_tree[t].MoveTo(random*400,random*400,0);
  48.           x:=random+0.5;
  49.           z:=random+0.5;
  50.           other_tree[t].Scale(x,x,z);
  51.      end;
  52. }
  53.  
  54.      Redraw_Scene;
  55.  
  56.      repeat
  57.            junk:=false;
  58.            if cyber then junk:=cyberman_check else if mouse then junk:=mouse_check;
  59.            if keyboard_check or junk then redraw_scene;
  60.      until false;
  61.  
  62.      stop_graphics;
  63. end.