]> 4ch.mooo.com Git - 16.git/blobdiff - 16/xw__/modex/DEMO01.PAS
clear
[16.git] / 16 / xw__ / modex / DEMO01.PAS
diff --git a/16/xw__/modex/DEMO01.PAS b/16/xw__/modex/DEMO01.PAS
deleted file mode 100755 (executable)
index c684acd..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-(*\r
-    DEMO01 - Sprites, page flipping and palette rotation\r
-    Copyright (c) 1994 Alessandro Scotti\r
-*)\r
-uses Crt, Modex;\r
-\r
-const\r
-  MAX_SPRITE = 100;\r
-type\r
-  (* Sprite structure *)\r
-  TSprite = record\r
-    X, Y : integer;                        (* Sprite coordinates *)\r
-    DX,DY: integer;                        (* Deltas for sprite movement *)\r
-    W, H : integer;                        (* Sprite width and height *)\r
-    Image: array[ 1..16, 1..16 ] of byte;  (* Sprite image data *)\r
-  end;\r
-  (* RGB color structure *)\r
-  TRgb    = record\r
-    R, G, B: byte;\r
-  end;\r
-var\r
-  S      : array[ 1..MAX_SPRITE ] of TSprite;   (* An array of sprites *)\r
-  Palette: array[ byte ] of TRgb;               (* Palette *)\r
-  Page   : word;                                (* Page offset *)\r
-  I      : word;\r
-\r
-(* Initializes a sprite structure *)\r
-procedure sxInit( var S: TSprite );\r
-var\r
-  I: word;\r
-begin\r
-  S.X := Random( 320 );  (* Initialize position with random values *)\r
-  S.Y := Random( 240 );\r
-  S.DX := Random( 7 )-3; (* Initialize speed with random values *)\r
-  S.DY := Random( 7 )-3;\r
-  S.W := 16;             (* Size is fixed in this program *)\r
-  S.H := 16;\r
-  (* The image is a square with a hole inside *)\r
-  FillChar( S.Image, SizeOf(S.Image), Random(15)+1 );\r
-  for I:=5 to 12 do FillChar( S.Image[ I, 5 ], 8, 0 );\r
-end;\r
-\r
-(* Moves a sprite *)\r
-procedure sxMove( var S: TSprite );\r
-begin\r
-  Inc( S.X, S.DX );     (* Get new position *)\r
-  Inc( S.Y, S.DY );\r
-  (* Check sprite position, change delta if needed *)\r
-  if( S.X > 320 ) then begin\r
-    S.X := 320;\r
-    S.DX := -S.DX;\r
-  end;\r
-  if( S.X < -16 ) then begin\r
-    S.X := -16;\r
-    S.DX := -S.DX;\r
-  end;\r
-  if( S.Y > 240 ) then begin\r
-    S.Y := 240;\r
-    S.DY := -S.DY;\r
-  end;\r
-  if( S.Y < -16 ) then begin\r
-    S.Y := -16;\r
-    S.DY := -S.DY;\r
-  end;\r
-  (* Draw the sprite, note the Page offset added to the *)\r
-  (* Y coordinate of the image *)\r
-  mxPutImage( @S.Image, S.X, Page+S.Y, S.W, S.H, OP_TRANS );\r
-end;\r
-\r
-begin\r
-  (* Initialize library *)\r
-  mxInit;\r
-\r
-  (* Enter graphics mode *)\r
-  mxSetMode( MX_320x240 );\r
-\r
-  (* Print initialization message *)\r
-  mxSetTextColor( 15, OP_TRANS );\r
-  mxOutStr( 4, 4, 'Initializing...' );\r
-\r
-  (* Initialize sprites *)\r
-  for I:=1 to MAX_SPRITE do sxInit( S[I] );\r
-\r
-  (* Draw background *)\r
-  for I:=1 to 192 do begin\r
-    mxCircle( 160, 480+120, I, I+63 );\r
-    mxCircle( 161, 480+120, I, I+63 );\r
-  end;\r
-\r
-  (* Compute and set palette *)\r
-  for I:=1 to 192 do with Palette[I+63] do begin\r
-    R := 0;\r
-    G := 0;\r
-    B := 0;\r
-    if( I < 64 ) then\r
-      R := I shr 1+31\r
-    else if( I < 128 ) then\r
-      G := (I-64) shr 1+31\r
-    else\r
-      B := (I-128) shr 1+31;\r
-  end;\r
-  mxSetPalette( @Palette[64], 64, 192 );\r
-\r
-  (* Main loop *)\r
-  Page := 240;\r
-  while( not KeyPressed ) do begin\r
-    (* Set clip region to current page *)\r
-    mxSetClipRegion( 0, Page, 320, 240 );\r
-    mxSetClip( TRUE );\r
-    (* Restore background *)\r
-    mxBitBlt( 0, 480, 320, 240, 0, Page );\r
-    (* Draw sprites *)\r
-    for I:=1 to MAX_SPRITE do sxMove( S[I] );\r
-    (* Print message *)\r
-    mxOutStr( 4, Page+4, 'Some sprites moving...' );\r
-    (* Flip page *)\r
-    mxStartLine( Page );\r
-    Page := 240-Page;\r
-    (* Animate palette *)\r
-    mxSetPalette( @Palette[64], 64, 192 );\r
-    mxRotatePalette( @Palette[64], 192, 3 );\r
-  end;\r
-\r
-  mxSetMode( MX_TEXT );\r
-  mxTerm;\r
-end.\r