home *** CD-ROM | disk | FTP | other *** search
/ PC Interdit / pc-interdit.iso / graph / sprt_ts.pas < prev    next >
Pascal/Delphi Source File  |  1994-10-17  |  2KB  |  47 lines

  1. Uses Crt,Gif,ModeXLib,Sprites;
  2.  
  3. Const NbSprites=3;            {nombre de sprites utilisés dans le programme }
  4.  
  5. Var Sprite:Array[1..NbSprites] of SpriteTyp;
  6.                               {données représentant les sprites }
  7.     i:Word;                   {compteur}
  8.  
  9. Begin
  10.   Init_ModeX;                 {enclenche le mode X }
  11.   LoadGif('Sprites');          {charge image avec trois sprites }
  12.   GetSprite(62 +114*320,58,48,Sprite[1]);  {coordonnées (62,114), dimensions 58*48}
  13.   GetSprite(133+114*320,58,48,Sprite[2]);  {(133,114), 58*48}
  14.   GetSprite(203+114*320,58,48,Sprite[3]);  {(203,114), 58*48}
  15.                                            {charge les trois sprites }
  16.   LoadGif('phint');                        {charge l'arrière-plan }
  17.   p13_2_ModeX(48000,16000);                {et le copie dans la page de fond }
  18.   With Sprite[1] do Begin                  {coordonnées et vitesse }
  19.     px:=160;py:=100;                 {des trois sprites (valeurs arbitraires)}
  20.     sx:=1;sy:=2;
  21.   End;
  22.   With Sprite[2] do Begin
  23.     px:=0;py:=0;
  24.     sx:=1;sy:=-1;
  25.   End;
  26.   With Sprite[3] do Begin
  27.     px:=250;py:=150;
  28.     sx:=-2;sy:=-1;
  29.   End;
  30.   Repeat
  31.     CopyScreen(vpage,48000);    {fond d'écran dans page courante }
  32.     For i:=1 to NbSprites do    {boucle parcourue pour tous les 3 sprites }
  33.       With Sprite[i] do Begin
  34.         Inc(px,sx); Inc(py,sy); {déplacement}
  35.         If (px < -dtx div 2)    {arrivé à gauche ou à droite ? -> demi-tour}
  36.           or (px > 320-dtx div 2) Then sx:=-sx;
  37.         If (py < -dty div 2)    {arrivé en bas ou en haut : -> demi-tour }
  38.           or (py > 200-dty div 2) Then sy:=-sy;
  39.         PutSprite(vpage,px,py,Sprite[i]); {dessine le sprite }
  40.       End;
  41.     switch;                      {active la page calculée }
  42.     WaitRetrace;                 {attend le retour de balayage vertical }
  43.   Until KeyPressed;              {avant de procéder à une autre modification }
  44.   ReadLn;
  45.   TextMode(3);
  46. End.
  47.