home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / polskie / eduk / genfast / genfast.lzh / DEMO_08.PAK / KULKA31.DA_ < prev    next >
Text File  |  1996-02-08  |  3KB  |  162 lines

  1. ; Gra typu ARKANOID - aplikacja przykladowa poruszana myszka
  2. ; Wykonanie: Piotr W.-Rakowski, 1996
  3. ; Wersja 1.1
  4.  
  5. [procedure Linia]
  6. @Line(%D,%C,%D+%E,%C);
  7. @Return;
  8.  
  9. [1!]
  10. @ClrScr;
  11. @Reset;
  12. @ShowScreen;
  13. @DisableStatusBar;
  14. @UpArea(20,20,620,410,4);
  15. @DownArea(29,29,611,401,7);
  16. @UpArea(80,420,500,470,7);
  17. @SetPosition(100,430);
  18. @FastWrite('Animacja 4. GRA typu ARCANOID - poruszana myszkå');
  19. @SetPosition(100,450);
  20. @FastWrite('GENFAST w.2.0.       [<-] szybciej  wolniej [->]');
  21. @DrawButton(20,420,70,470,7,200,'koniec.rbm','');
  22. @DrawButton(510,420,560,470,7,41,'lewo.rbm','');
  23. @DrawButton(570,420,620,470,7,40,'prawo.rbm','');
  24. ; Miejsce, od ktorego bedzie wyswietlany kwadracik
  25. @A:=50
  26. @B:=50
  27. ; Zdefiniowanie kierunku ruchu obiektu
  28. @K:=2
  29. ; Warunki brzegowe linijki odbijajacej
  30. ; x1
  31. @C:=301
  32. ; y1
  33. @D:=30
  34. ; Dlugosc = 50
  35. @E:=50
  36. @F:=50
  37. @Call:Linia;
  38. ; Procedura wywolywana cyklicznie
  39. @DefIdleProc(6);
  40.  
  41. [100]
  42. @CheckEvents;
  43.  
  44. [2]
  45. @A:=%A+2
  46. @B:=%B+2
  47. @IF (%B >= 370) Then GoSub:7
  48. @IF (%A >= 580) Then GoSub:9
  49. @IF (%B+30 = 300) Then GoSub:30
  50. @Goto:100
  51.  
  52. [3]
  53. @A:=%A+2
  54. @B:=%B-2
  55. @IF (%A >= 580) Then GoSub:8
  56. @IF (%B <= 30) Then GoSub:10
  57. @IF (%B = 302) Then GoSub:32
  58. @Goto:100
  59.  
  60. [4]
  61. @A:=%A-2
  62. @B:=%B-2
  63. @IF (%B <= 30) Then GoSub:9
  64. @IF (%A <= 30) Then GoSub:7
  65. @IF (%B = 302) Then GoSub:34
  66. @Goto:100
  67.  
  68. [5]
  69. @A:=%A-2
  70. @B:=%B+2
  71. @IF (%A <= 30) Then GoSub:10
  72. @IF (%B >= 370) Then GoSub:8
  73. @IF (%B+30 = 300) Then GoSub:36
  74. @Goto:100
  75.  
  76. [6]
  77. @GetMousePosition;
  78. @GoSub:20;
  79. @SetPosition(%A,%B);
  80. ;@Rectangle(%A,%B,%A+30,%B+30);
  81. @UpArea(%A,%B,%A+30,%B+30,2);
  82. @Delay(%F);
  83. @Clear(%A,%B,%A+30,%B+30);
  84. @Goto:%K
  85.  
  86. [7]
  87. @K:=3
  88. @Sound(50,50);
  89. @Return;
  90.  
  91. [8]
  92. @K:=4
  93. @Sound(50,50);
  94. @Return;
  95.  
  96. [9]
  97. @K:=5
  98. @Sound(50,50);
  99. @Return;
  100.  
  101. [10]
  102. @K:=2
  103. @Sound(50,50);
  104. @Return;
  105.  
  106. [20]
  107. @Clear(%D,%C,%D+%E,%C);
  108. @D:=%X
  109. @IF (%D >= 560) Then Begin
  110. @D:=560
  111. @End;
  112. @IF (%D <= 30) Then Begin
  113. @D:=30
  114. @End;
  115. @Call:Linia;
  116. @Return;
  117.  
  118. [30]
  119. @IF (%A+30 >= %D) Then GoSub:31
  120. @Return;
  121. [31] 
  122. @IF (%A+30 <= %D+80) Then GoSub:7
  123. @Return;
  124.  
  125. [32]
  126. @IF (%A+30 >= %D) Then GoSub:33
  127. @Return;
  128. [33] 
  129. @IF (%A+30 <= %D+80) Then GoSub:10
  130. @Return;
  131.  
  132. [34]
  133. @IF (%A+30 >= %D) Then GoSub:35
  134. @Return;
  135. [35] 
  136. @IF (%A+30 <= %D+80) Then GoSub:9
  137. @Return;
  138.  
  139. [36]
  140. @IF (%A+30 >= %D) Then GoSub:37
  141. @Return;
  142. [37] 
  143. @IF (%A+30 <= %D+80) Then GoSub:8
  144. @Return;
  145.  
  146. [40]
  147. @F:=%F-5
  148. @IF (%F < 10) Then Begin
  149. @F:=10
  150. @End;
  151. @GoTo:100
  152.  
  153. [41]
  154. @F:=%F+5
  155. @IF (%F > 100) Then Begin
  156. @F:=100
  157. @End;
  158. @GoTo:100
  159.  
  160. [200]
  161. @ReplaceProgram('shell.dat',1);
  162.