home *** CD-ROM | disk | FTP | other *** search
- 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.
-