[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]
{If any one is interested, a scrolling demo like the one's uses in RPG games}
{Subject: Scrolling Demo}
{Written by: Wesley Burns}
{EMAIL: microcon@iafrica.com}
{Email: me if you have ANY questions about }
{ : 64k DMA Sound Blaster Programming using XMS }
{ : Fast Memory Management }
{ : PCX using XMS }
{ : XMS Units }
{ : Pascal in general }
{ : Or if you have some fast procedures that you don't mind parting with. }
Var TerrainData:array[1..10000] of byte;
const xsize = 16; {x size of each pixture block}
ysize = 16; {y size of each pixture block}
screenxsize = 320;
screenysize = 200;
{You must add a range checking proc, so that you cant scroll off of the "MAP"}
{ | | Top left hand co-ords of where to start drawing
the "map"}
Procedure DrawScreenFill(x,y:integer);
var xx,yy,xpos,ypos,PicToUse:integer;
Begin
Ypos :=0; XPos := 0;
for yy := y to y + (screenysize div ysize) do
begin
for xx := x to x + (screenxsize div ysize) do
begin
PicToUse := TerrainData[100*yy+xx];{Work out matrix for pic to use}
MaskPic(XPos,YPos, PicToUse, 255, VScreen^);
{YOU CAN FIND THIS ABOVER PROCEDURE IN THE GRAPHICS SECTION OF SWAG}
inc(xpos,xsize);
end;
inc(Ypos,ysize);
XPos := 0;
end;
End;
Begin
End.
[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]