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

  1. ; Animacja numer 3 - plynne animowanie map bitowych (mucha)
  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 nr 7. Animacja w tek₧cie. ');
  14. @SetPosition(100,450);
  15. @FastWrite('Uºyj te przyciski do zmiany prædko₧ci lotu ->');
  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:=280;
  21. @B:=210;
  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. @Sound(150,%K);
  33. @Picture('bug1.pcx');
  34. @Sound(100,%K);
  35. @Picture('bug2.pcx');
  36. @Sound(150,%K);
  37. @Picture('bug3.pcx');
  38. @Sound(200,%K);
  39. @GoSub:3
  40. @GoTo:100;
  41.  
  42. [3]
  43. @Random(1,4,%L);
  44. @IF (%L =1) Then Begin
  45. @A:=%A+5;
  46. @B:=%B+5;
  47. @End;
  48. @IF (%L =2) Then Begin
  49. @A:=%A+5;
  50. @B:=%B-5;
  51. @End;
  52. @IF (%L =3) Then Begin
  53. @A:=%A-5;
  54. @B:=%B+5;
  55. @End;
  56. @IF (%L =4) Then Begin
  57. @A:=%A-5;
  58. @B:=%B-5;
  59. @End;
  60. @IF (%A < 30) Then Begin
  61. @A:=30
  62. @End; 
  63. @IF (%A > 580) Then Begin
  64. @A:=580
  65. @End; 
  66. @IF (%B < 210) Then Begin
  67. @B:=210
  68. @End; 
  69. @IF (%B > 250) Then Begin
  70. @B:=250
  71. @End; 
  72. @Return;
  73.  
  74. [100]
  75. @CheckEvents;
  76.  
  77. [200]
  78. @LoadFont('SYSTEM.RSF');
  79. @SetColors(0,15);
  80. @SetPosition(0,30);
  81.    ~PRZYK£AD P£YNNEJ ANIMACJI W TEKÿCIE Z UíYCIEM FUNKCJI '@Random'~
  82. @SetPosition(0,80);
  83.    Oto przykÆad procedury pozwalåjacej wykorzystywaì animacje w tek₧cie.
  84.    Animacja ta prowadzona jest na mapach bitowych. Animowanie map bitowych
  85.    polega na cyklicznym wy₧wietlaniu na ekranie kolejnych obrazów, przed-
  86.    stawiajåcych poszczególne fazy ruchu postaci. W tym przykÆadzie ruch
  87.    postaci skÆada siæ z 3 faz. Symulacja ruchu uzyskiwana jest poprzez
  88.    wy₧wietlanie kolejnych faz bez czyszczenia obszaru zajmowanego przez
  89.    rysunek. W tym przypadku plynno₧ì ruchów uzyskuje siæ przez bezpo₧rednie
  90.    nakÆadanie na siebie map bitowych (bez kasowania obszaru pod nimi).
  91. @SetPosition(0,350);
  92.    ZÆudzenie ruchu postaci bædzie jeszcze lepsze, gdy wiæcej faz bædzie
  93.    wy₧wietlanych po sobie. Zamiast pauzy pomiædzy fazami wydobywany jest
  94.    dªwiæk. Ruch muchy jest dynamicznie zmieniany funkcjå ~@Random~.
  95.    Przeanalizuj kod ªródÆowy, zobacz co moºesz zmieniì (lub dodaì)?
  96. @Return;   
  97.  
  98. [300]
  99. @K:=%K - 10
  100. @IF (%K <= 10) Then Begin
  101. @K:=10
  102. @End;
  103. @Goto:100
  104.  
  105. [301]
  106. @K:=%K + 10
  107. @IF (%K >= 150) Then Begin
  108. @K:=150
  109. @End;
  110. @Goto:100
  111.  
  112. [900]
  113. @ReplaceProgram('shell.dat',1);