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 >
Wrap
Text File
|
1996-02-08
|
3KB
|
113 lines
; Animacja numer 3 - plynne animowanie map bitowych (mucha)
; Wykonanie Piotr W.-Rakowski, 1996
[1!]
@ClrScr;
@Reset;
@ShowScreen;
@DisableStatusBar;
@UpArea(0,0,639,479,3);
@DownArea(9,9,630,471,7);
@DownArea(80,420,500,468,7);
@SetPosition(100,430);
@FastWrite('Animacja przykÆadowa nr 7. Animacja w tek₧cie. ');
@SetPosition(100,450);
@FastWrite('Uºyj te przyciski do zmiany prædko₧ci lotu ->');
@DrawButton(20,420,70,468,7,900,'koniec.rbm','');
@DrawButton(510,420,560,468,7,301,'lewo.rbm','');
@DrawButton(570,420,620,468,7,300,'prawo.rbm','');
; Stale ekranowe
@A:=280;
@B:=210;
; Stala czasowa - opoznienie ruchu postaci
@K:=50
; Procedura wykonywana cyklicznie
@GoSub:200
@DefIdleProc(2);
[2]
; Roznice w umieszczaniu na ekranie poszczegolnych faz (rysunkow)
; wynikaja z roznej ich wielkosci.
@SetPosition(%A,%B);
@Sound(150,%K);
@Picture('bug1.pcx');
@Sound(100,%K);
@Picture('bug2.pcx');
@Sound(150,%K);
@Picture('bug3.pcx');
@Sound(200,%K);
@GoSub:3
@GoTo:100;
[3]
@Random(1,4,%L);
@IF (%L =1) Then Begin
@A:=%A+5;
@B:=%B+5;
@End;
@IF (%L =2) Then Begin
@A:=%A+5;
@B:=%B-5;
@End;
@IF (%L =3) Then Begin
@A:=%A-5;
@B:=%B+5;
@End;
@IF (%L =4) Then Begin
@A:=%A-5;
@B:=%B-5;
@End;
@IF (%A < 30) Then Begin
@A:=30
@End;
@IF (%A > 580) Then Begin
@A:=580
@End;
@IF (%B < 210) Then Begin
@B:=210
@End;
@IF (%B > 250) Then Begin
@B:=250
@End;
@Return;
[100]
@CheckEvents;
[200]
@LoadFont('SYSTEM.RSF');
@SetColors(0,15);
@SetPosition(0,30);
~PRZYK£AD P£YNNEJ ANIMACJI W TEKÿCIE Z UíYCIEM FUNKCJI '@Random'~
@SetPosition(0,80);
Oto przykÆad procedury pozwalåjacej wykorzystywaì animacje w tek₧cie.
Animacja ta prowadzona jest na mapach bitowych. Animowanie map bitowych
polega na cyklicznym wy₧wietlaniu na ekranie kolejnych obrazów, przed-
stawiajåcych poszczególne fazy ruchu postaci. W tym przykÆadzie ruch
postaci skÆada siæ z 3 faz. Symulacja ruchu uzyskiwana jest poprzez
wy₧wietlanie kolejnych faz bez czyszczenia obszaru zajmowanego przez
rysunek. W tym przypadku plynno₧ì ruchów uzyskuje siæ przez bezpo₧rednie
nakÆadanie na siebie map bitowych (bez kasowania obszaru pod nimi).
@SetPosition(0,350);
ZÆudzenie ruchu postaci bædzie jeszcze lepsze, gdy wiæcej faz bædzie
wy₧wietlanych po sobie. Zamiast pauzy pomiædzy fazami wydobywany jest
dªwiæk. Ruch muchy jest dynamicznie zmieniany funkcjå ~@Random~.
Przeanalizuj kod ªródÆowy, zobacz co moºesz zmieniì (lub dodaì)?
@Return;
[300]
@K:=%K - 10
@IF (%K <= 10) Then Begin
@K:=10
@End;
@Goto:100
[301]
@K:=%K + 10
@IF (%K >= 150) Then Begin
@K:=150
@End;
@Goto:100
[900]
@ReplaceProgram('shell.dat',1);