home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / fgl / fglight / expas.arj / TEMP / 12-05.PAS < prev    next >
Pascal/Delphi Source File  |  1995-01-20  |  1KB  |  64 lines

  1. {$M 16384,0,0}
  2.  
  3. program main;
  4. uses fgmain, fgmisc;
  5.  
  6. const
  7.   VISUAL = 0;
  8.   HIDDEN = 1;
  9.  
  10. var
  11.   status   : integer;
  12.   new_mode : integer;
  13.   old_mode : integer;
  14.   frame, offset, i : integer;
  15.  
  16. begin
  17.  
  18.   { initialize the video environment }
  19.  
  20.   fg_initpm;
  21.   new_mode := fg_bestmode(320,200,2);
  22.   if (new_mode < 0) or (new_mode = 12) then
  23.   begin
  24.     write('This program requires a 320 ');
  25.     writeln('x 200 color graphics mode.');
  26.     exit;
  27.   end;
  28.   old_mode := fg_getmode;
  29.   fg_setmode(new_mode);
  30.   status := fg_allocate(HIDDEN);
  31.  
  32.   { draw the background in the upper left corner }
  33.  
  34.   fg_setpage(HIDDEN);
  35.   fg_setcolor(1);
  36.   fg_rect(0,95,0,49);
  37.   fg_setcolor(15);
  38.   fg_move(48,25);
  39.   fg_ellipse(20,20);
  40.  
  41.   { copy it to the center of the visual page }
  42.  
  43.   fg_transfer(0,95,0,49,112,124,HIDDEN,VISUAL);
  44.  
  45.   { slide the object across the background three times }
  46.  
  47.   fg_setcolor(10);
  48.   for i := 0 to 35 do
  49.   begin
  50.     frame  := i mod 12;
  51.     offset := 10 * frame - 10;
  52.     fg_transfer(0,95,20,29,112,105,HIDDEN,HIDDEN);
  53.     fg_rect(112+offset,131+offset,96,105);
  54.     fg_transfer(112,207,96,105,112,105,HIDDEN,VISUAL);
  55.     fg_waitfor(2);
  56.   end;
  57.  
  58.   { restore the original video mode and return to DOS }
  59.  
  60.   status := fg_freepage(HIDDEN);
  61.   fg_setmode(old_mode);
  62.   fg_reset;
  63. end.
  64.