STINGER.PAS 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. Uses Objects,Graph;
  2. Procedure EGAVGADriver;external;
  3. Function KeyPressed:boolean;assembler;
  4. asm
  5. mov ah, 1
  6. int 16h
  7. mov al, 0
  8. jz @@2
  9. mov al, 1
  10. @@2:
  11. end;
  12. var
  13. Wrld : PWorld;
  14. Timer : LongInt Absolute $0040:$006c;
  15. Last,i : Longint;
  16. MyRAH : pRAH;
  17. MyStinger : pSting;
  18. mP : TParams;
  19. Page : byte;
  20. gD,gM : integer;
  21. begin
  22. {$L EGAVGA.OBJ}
  23. RegisterBGIDriver(@EGAVGADriver);
  24. Gd:=VGA;
  25. Gm:=VGAHi;
  26. INitGraph(gD,gM,'');
  27. New(Wrld,Init('BG.dat'));
  28. With mP do begin
  29. Pos.x:=75.0;
  30. Pos.y := 400.0;
  31. Speed.X := 20.0;
  32. Speed.Y := 0.0;
  33. Accel.X := 0.02;
  34. Accel.Y := -0.01;
  35. end;
  36. New(MyRAH,Init('rah-66-2.dat',mP,100));
  37. Wrld^.AddObject(MyRAH);
  38. With mP do begin
  39. Pos.x:=320.0;
  40. Pos.y := 50.0;
  41. Speed.X := -2;
  42. Speed.Y := 30;
  43. Accel.X := 0.0;
  44. Accel.Y := -0.9;
  45. end;
  46. New(MyStinger,Init('stinger.dat',mP,110));
  47. Wrld^.AddObject(MyStinger);
  48. TIME_FACTOR := 0.1;
  49. FPS := 1;
  50. FIELD_X := 600;
  51. Last := timeR;
  52. i:=0;
  53. page:=0;
  54. Wrld^.Draw;
  55. while not (Wrld^.Ending or KeyPressed) do
  56. begin
  57. { SetActivePage(Page); }
  58. Wrld^.Draw;
  59. { SetVisualPage(Page);
  60. Page:=1-Page; }
  61. repeat until (Timer-Last) <> 0;
  62. { Wrld^.Frame(Timer-Last);}
  63. Wrld^.Frame(1);
  64. Last := timeR;
  65. { Write(#13,i,' ',Timer);}
  66. Inc(i);
  67. end;
  68. CloseGraph;
  69. end.