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

  1. ; Animacja numer 2 - animowanie map bitowych w tekscie
  2. ; Wykonanie Piotr W.-Rakowski, 1996
  3.  
  4. [1!]
  5. @ClrScr;
  6. @Reset;
  7. @ShowScreen;
  8. @DisableStatusBar;
  9. @UpArea(0,0,639,479,3);
  10. @DownArea(9,9,630,471,7);
  11. @DownArea(80,420,500,468,7);
  12. @SetPosition(100,430);
  13. @FastWrite('Animacja przykÆadowa numer 5. Animacja w tek₧cie.');
  14. @SetPosition(100,450);
  15. @FastWrite('Uºyj te przyciski do zmiany prædko₧ci postaci ->');
  16. @DrawButton(20,420,70,468,7,900,'koniec.rbm','');
  17. @DrawButton(510,420,560,468,7,301,'lewo.rbm','');
  18. @DrawButton(570,420,620,468,7,300,'prawo.rbm','');
  19. ; Stale ekranowe
  20. @A:=10;
  21. @B:=200;
  22. ; Stala czasowa - opoznienie ruchu postaci
  23. @K:=50
  24. ; Procedura wykonywana cyklicznie
  25. @GoSub:200
  26. @DefIdleProc(2);
  27.  
  28. [2]
  29. ; Roznice w umieszczaniu na ekranie poszczegolnych faz (rysunkow)
  30. ; wynikaja z roznej ich wielkosci. 
  31. @SetPosition(%A,%B);
  32. @Picture('C1.pcx');
  33. @Delay(%K);
  34. ;@Clear(%A,%B,%A+100,%B+120);
  35. @GoSub:3
  36.  
  37. @SetPosition(%A,%B);
  38. @Picture('C2.pcx');
  39. @Delay(%K);
  40. ;@Clear(%A,%B,%A+100,%B+120);
  41. @GoSub:3
  42.  
  43. @SetPosition(%A,%B);
  44. @Picture('C3.pcx');
  45. @Delay(%K);
  46. ;@Clear(%A,%B,%A+100,%B+120);
  47. @GoSub:3
  48.  
  49. @SetPosition(%A,%B);
  50. @Picture('C4.pcx');
  51. @Delay(%K);
  52. ;@Clear(%A,%B,%A+100,%B+120);
  53. @GoSub:3
  54.  
  55. @SetPosition(%A,%B);
  56. @Picture('C5.pcx');
  57. @Delay(%K);
  58. ;@Clear(%A,%B,%A+100,%B+120);
  59. @GoSub:3
  60.  
  61. @SetPosition(%A,%B);
  62. @Picture('C6.pcx');
  63. @Delay(%K);
  64. @Clear(%A,%B,%A+100,%B+120);
  65. @GoSub:3
  66.  
  67. @GoTo:100;
  68.  
  69. [3]
  70. @A:=%A+10;
  71. @IF (%A > 500) Then Begin
  72. ; Po wy₧wietleniu wszystkich faz niezbædny jest '@CLEAR'
  73. @Clear(%A,%B,%A+100,%B+120);
  74. @A:=10;
  75. @End;
  76. @Return;
  77.  
  78. [100]
  79. @CheckEvents;
  80.  
  81. [200]
  82. @LoadFont('SYSTEM.RSF');
  83. @SetColors(0,15);
  84. @SetPosition(0,30);
  85.    ~PRZYK£AD ANIMACJI W TEKÿCIE~
  86. @SetPosition(0,80);
  87.    Oto przykÆad procedury pozwalajåcej wykorzystywaì animacje w tek₧cie.
  88.    Animacja ta prowadzona jest na mapach bitowych. Animowanie map bitowych
  89.    polega na cyklicznym wy₧wietlaniu na ekranie kolejnych obrazów, przed-
  90.    stawiajacych poszczególne fazy ruchu postaci. W naszym przykÆadzie
  91.    ruch postaci skÆada sie z 6 faz. Symulacja ruchu uzyskiwana jest poprzez
  92.    wy₧wietlanie kolejnych faz z przesuniæciem równym 10 pikselom, to znaczy,
  93.    ºe kaºda nastæpna faza wy₧wietlana jest o 10 pikseli dalej od poprzedniej.
  94. @SetPosition(0,350);
  95.    ZÆudzenie ruchu postaci bædzie tym lepsze, im wiæcej faz ruchu bædzie
  96.    wyswietlanych po sobie. W naszym przykÆadzie pauza pomiædzy fazami jest
  97.    regulowana klawiszami ze strzaÆkami. ~Przeanalizuj kod ªródÆowy !!!~
  98. @Return;   
  99.  
  100. [300]
  101. @K:=%K - 10
  102. @IF (%K <= 0) Then Begin
  103. @K:=0
  104. @End;
  105. @Goto:100
  106.  
  107. [301]
  108. @K:=%K + 10
  109. @IF (%K >= 200) Then Begin
  110. @K:=200
  111. @End;
  112. @Goto:100
  113.  
  114. [900]
  115. @ReplaceProgram('shell.dat',1);
  116.