home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Interdit
/
pc-interdit.iso
/
graph
/
sprt_ts.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-10-17
|
2KB
|
47 lines
Uses Crt,Gif,ModeXLib,Sprites;
Const NbSprites=3; {nombre de sprites utilisés dans le programme }
Var Sprite:Array[1..NbSprites] of SpriteTyp;
{données représentant les sprites }
i:Word; {compteur}
Begin
Init_ModeX; {enclenche le mode X }
LoadGif('Sprites'); {charge image avec trois sprites }
GetSprite(62 +114*320,58,48,Sprite[1]); {coordonnées (62,114), dimensions 58*48}
GetSprite(133+114*320,58,48,Sprite[2]); {(133,114), 58*48}
GetSprite(203+114*320,58,48,Sprite[3]); {(203,114), 58*48}
{charge les trois sprites }
LoadGif('phint'); {charge l'arrière-plan }
p13_2_ModeX(48000,16000); {et le copie dans la page de fond }
With Sprite[1] do Begin {coordonnées et vitesse }
px:=160;py:=100; {des trois sprites (valeurs arbitraires)}
sx:=1;sy:=2;
End;
With Sprite[2] do Begin
px:=0;py:=0;
sx:=1;sy:=-1;
End;
With Sprite[3] do Begin
px:=250;py:=150;
sx:=-2;sy:=-1;
End;
Repeat
CopyScreen(vpage,48000); {fond d'écran dans page courante }
For i:=1 to NbSprites do {boucle parcourue pour tous les 3 sprites }
With Sprite[i] do Begin
Inc(px,sx); Inc(py,sy); {déplacement}
If (px < -dtx div 2) {arrivé à gauche ou à droite ? -> demi-tour}
or (px > 320-dtx div 2) Then sx:=-sx;
If (py < -dty div 2) {arrivé en bas ou en haut : -> demi-tour }
or (py > 200-dty div 2) Then sy:=-sy;
PutSprite(vpage,px,py,Sprite[i]); {dessine le sprite }
End;
switch; {active la page calculée }
WaitRetrace; {attend le retour de balayage vertical }
Until KeyPressed; {avant de procéder à une autre modification }
ReadLn;
TextMode(3);
End.