------------------------------ ANIMATION TUTOR ------------------------------- Written by: Wesley Burns EMail: microcon@iafrica.com EMail me if you have any more questions! ------------------------------------------------------------------------------ TWO POINTERS WILL BE NEEDED VAR BScreen^, VScreen:Pointer GetMEM(BScreen, 64000); {Pointer 1} GetMEM(VScreen, 64000); {Pointer 2} STEPS IN ANIMATING 1. DRAW BACKGROUND(STATIC) SCREEN TO POINTER 1. 2. COPY BACKGROUND TO VIRTUAL SCREEN(POINTER 2). 3. DRAW ALL NEW GRAPHICS TO VIRTUAL SCREEN(POINTER 2). 4. WHEN STEP 3 IS DONE, COPY IT TO VIDEO RAM ($A000) 5. IF BACKGROUND HAS NOT CHANGED YET, THEN GO TO STEP 2, ELSE GO TO STEP 1 ------------------------------------------------------------------------------ Program Test; Var BScreen, VScreen:Pointer USES CRT; Begin GetMem(BScreen, 64000); {64000 bytes holds one screen page} GetMem(VScreen, 64000); {STEP 1 - DRAW BACKGROUND} FILLCHAR(BScreen^, 64000, 1); {PLANE BLUE SCREEN} {LOOK IN THE MEMORY PART OF SWAG FOR FAST MEMORY FILLING} REPEAT {STEP 2 - COPY BACKGOUND TO POINTER 2} MOVE(BScreen^, VScreen^, 64000); {LOOK IN THE MEMORY PART OF SWAG FOR FAST MEMORY MOVING PROCEDURE} {STEP 3 - DRAW YOUR SPITES} {LOOK IN THE GRAPHICS PART OF SWAG FOR MY PROCEDURE ON FAST MASKING SPRITES} {WAIT RETRACE - LOOK IN SWAG FOR A WAIT RETRACE PROCEDURE - SMOOTHS UP YOUR GRAPHICS} {STEP 4 - COPY YOUR NEW FRAME TO SCREEN} MOVE(VScreen^, MEM[$A000:0000], 64000) {LOOK IN THE MEMORY PART OF SWAG FOR FAST MEMORY MOVING PROCEDURE} {STEP 5 - UPDATE BACKGROUND OF GAME, IF NEEDED} UNTIL KEYPRESSED; FreeMem(BScreen, 64000); FreeMem(VScreen, 64000); End.