home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / msdos / pascal / anivga12 / example1.pas < prev    next >
Pascal/Delphi Source File  |  1993-07-11  |  2KB  |  56 lines

  1. {$A+,B-,D+,L+,N-,E-,O-,R-,S-,V-,G-,F-,I-,X-}
  2. {$M 16384,0,655360}
  3. PROGRAM Example1;
  4. USES ANIVGA,CRT;
  5. CONST LoadNumber=42; {why not 42? - A hello to all Douglas Adam fans!}
  6.       SpriteName='FLOWER.COD'; {Path and name of the sprite to load}
  7.       Sprite1=0;
  8.       Sprite2=5;
  9.       ch:CHAR=#0; {sets ch to that value everytime the program starts}
  10. VAR collide:BOOLEAN;
  11.  
  12. BEGIN
  13.  IF loadSprite(SpriteName,LoadNumber)=0
  14.   THEN BEGIN
  15.         CloseRoutines;
  16.         WRITELN('Error: '+GetErrorMessage); halt(1)
  17.        END;
  18.  
  19.  InitGraph;
  20.  
  21.  Color:=66;
  22.  BackgroundLine(0,0,XMAX,0); BackgroundLine(XMAX,0,XMAX,YMAX);
  23.  BackgroundLine(XMAX,YMAX,0,YMAX); BackgroundLine(0,YMAX,0,0);
  24.  BackgroundOutTextXY(100,70,'Hello world!');
  25.  
  26.  SpriteN[Sprite1]:=LoadNumber;
  27.  SpriteX[Sprite1]:=0; SpriteY[Sprite1]:=0;
  28.  
  29.  SpriteN[Sprite2]:=LoadNumber;
  30.  SpriteX[Sprite2]:=XMAX SHR 1; SpriteY[Sprite2]:=YMAX SHR 1;
  31.  
  32.  Animate;
  33.  REPEAT
  34.   collide:=Hitdetect(Sprite1,Sprite2);
  35.   if collide THEN BEGIN Sound(1000); Delay(5); NoSound END;
  36.   if KeyPressed
  37.    THEN BEGIN
  38.          WHILE KeyPressed do ch:=UpCase(ReadKey);
  39.          CASE ch OF
  40.           'I':DEC(SpriteY[Sprite1]);
  41.           'J':DEC(SpriteX[Sprite1]);
  42.           'K':INC(SpriteX[Sprite1]);
  43.           'M':INC(SpriteY[Sprite1]);
  44.           'E':dec(StartVirtualY,10);  {change position of whole scene with}
  45.           'S':dec(StartVirtualX,10);  {E,S,D,X}
  46.           'D':inc(StartVirtualX,10);
  47.           'X':inc(StartVirtualY,10);
  48.          END;
  49.          IF POS(ch,'IJKMESDX')>0 THEN Animate;
  50.         END;
  51.  
  52.  UNTIL (ch='Q') OR (ch=#27);
  53.  
  54.  CloseRoutines;
  55. END.
  56.