home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / polskie / eduk / genfast / demo_08.pak / KULKA3.DA_ < prev    next >
Text File  |  1996-02-08  |  3KB  |  160 lines

  1. ; Gra typu ARKANOID - aplikacja przykladowa
  2. ; Wykonanie: #pwr, 1996
  3. ; Wersja 1.0
  4.  
  5. [procedure Linia]
  6. @Line(%D,%C,%D+%E,%C);
  7. @Return;
  8.  
  9. [1!]
  10. @ClrScr;
  11. @Reset;
  12. @DefKeyboardHandler(400);
  13. @ShowScreen;
  14. @DisableStatusBar;
  15. ; Miejsce, od ktorego bedzie wyswietlana kulka
  16. @A:=50
  17. @B:=50
  18. ; Zdefiniowanie kierunku ruchu kulki
  19. @K:=2
  20. ; Warunki brzegowe linijki odbijajacej
  21. ;x1
  22. @C:=301
  23. ;y1
  24. @D:=30
  25. ;Dlugosc = 50
  26. @E:=50
  27. @UpArea(20,20,620,410,4);
  28. @DownArea(29,29,611,401,7);
  29. @DownArea(80,420,500,470,7);
  30. @SetPosition(100,430);
  31. @FastWrite('Animacja 3. GRA typu ARCANOID. GENFAST 2.0.');
  32. @SetPosition(100,450);
  33. @FastWrite('Uºyj klawiszy kursora do poruszania poprzeczkå!');
  34. @DrawButton(20,420,70,470,7,200,'koniec.rbm','');
  35. @DrawButton(510,420,560,470,7,20,'lewo.rbm','');
  36. @DrawButton(570,420,620,470,7,21,'prawo.rbm','');
  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. @SetPosition(%A,%B);
  78. @Rectangle(%A,%B,%A+30,%B+30);
  79. @Delay(30);
  80. @Clear(%A,%B,%A+30,%B+30);
  81. @Goto:%K
  82.  
  83. [7]
  84. @K:=3
  85. @Sound(50,30);
  86. @Return;
  87.  
  88. [8]
  89. @K:=4
  90. @Sound(50,30);
  91. @Return;
  92.  
  93. [9]
  94. @K:=5
  95. @Sound(50,30);
  96. @Return;
  97.  
  98. [10]
  99. @K:=2
  100. @Sound(50,30);
  101. @Return;
  102.  
  103. [20]
  104. @Clear(%D,%C,%D+%E,%C);
  105. @D:=%D - 10
  106. @IF (%D <= 30) Then Gosub:22;
  107. @Call:Linia;
  108. @GoTo:6
  109.  
  110. [21]
  111. @Clear(%D,%C,%D+%E,%C);
  112. @D:=%D + 10
  113. @IF (%D >= 560) Then Gosub:23;
  114. @Call:Linia;
  115. @GoTo:6
  116.  
  117. [22]
  118. @D:=30
  119. @Return; 
  120.  
  121. [23]
  122. @D:=560
  123. @Return;
  124.  
  125. [30]
  126. @IF (%A+30 >= %D) Then GoSub:31
  127. @Return;
  128. [31] 
  129. @IF (%A+30 <= %D+80) Then GoSub:7
  130. @Return;
  131.  
  132. [32]
  133. @IF (%A+30 >= %D) Then GoSub:33
  134. @Return;
  135. [33] 
  136. @IF (%A+30 <= %D+80) Then GoSub:10
  137. @Return;
  138.  
  139. [34]
  140. @IF (%A+30 >= %D) Then GoSub:35
  141. @Return;
  142. [35] 
  143. @IF (%A+30 <= %D+80) Then GoSub:9
  144. @Return;
  145.  
  146. [36]
  147. @IF (%A+30 >= %D) Then GoSub:37
  148. @Return;
  149. [37] 
  150. @IF (%A+30 <= %D+80) Then GoSub:8
  151. @Return;
  152.  
  153. [200]
  154. @ReplaceProgram('shell.dat',1);
  155.  
  156. [400]
  157. @F:=%Z;
  158. @IF (%F = $4B00) Then GoTo:20;
  159. @IF (%F = $4D00) Then GoTo:21;
  160. @CheckEvents;