-----------------------------------------------------------------
        EEN SPEL MAKEN MET AMIGABASIC - DE INITIALISATIE
-----------------------------------------------------------------

Het plaatje wat  ik getekend heb is  in Lo-Res, daarmee  wordt de
maat van het  scherm vastgelegd.  De maat wordt 320 bij 256 punt-
jes.

Voor de initialisatie moeten we een paar dingen weten. Die dingen
kunnen we dan meteen voorin het programma doen.

Als eerste moeten we een plaatje  binnenlezen van de diskette. We
gebruiken daarvoor  de routine die in de tekst  LEESSCHERM is be-
schreven. Daarvoor is een library nodig :

   DECLARE FUNCTION ldscr& LIBRARY
   LIBRARY "ldscr.library"

Tevens een  subroutine waar het lezen  in gebeurt.  Straks zet ik
deze  subroutine samen met alle  andere subroutines  achteraan in
het programma :

   LeesScherm:
   Scherm$=Naam$+CHR$(0)
   sch&=ldscr& (SADD(Scherm$),WINDOW(7))
   RETURN


Als volgende hebben we een scherm nodig waar alles op gebeurt. We
hebben eigenlijk twee schermen nodig. Zoals u op het plaatje hebt
gezien maken we gebruik van een animatie. Om deze animatie in het
geheugen  te hebben moet deze  op een scherm staan.  Ook moet het
spel zich op een scherm afspelen.

We definieeren dus twee schermen met op elk een window.

   SCREEN 3,320,256,4,1
   WINDOW 3,,,0,3

   SCREEN 4,320,256,4,1
   WINDOW 4,,,0,4

Het zijn beide  schermen met een resolutie  van 320 bij 256 en ze
zijn 4 bitplanes groot, dus 16 kleuren.

Straks  gaan we een  animatie doen.  Dat betekent  dat we  van de
blitter gebruik gaan maken. Zoals u daar kunt lezen moeten we een
pointer  naar het  scherm uitrekenen.  Het is slim om dat  meteen
maar bij  het aanmaken van het scherm te doen.  Het vorige stukje
wordt dan :

   SCREEN 3,320,256,5,1
   WINDOW 3,,,0,3
   PALETTE 1,0,0,0
   Xn&=PEEKL(PEEKL(ViewPortAddress&(WINDOW(7))+36)+4)

   SCREEN 4,320,256,5,1
   WINDOW 4,,,0,4
   PALETTE 1,0,0,0
   Xv&=PEEKL(PEEKL(ViewPortAddress&(WINDOW(7))+36)+4)  

Ik heb nog 1 kommando toegevoegd. Met het PALETTE-kommando zet ik
kleur 1, de randen van het scherm, op zwart. Dit staat wat mooier
dan die witte lijnen.


Net  schreef ik  al dat we  de blitter-routines  zouden  gaan ge-
bruiken. Daarvoor zijn twee libraries nodig :

   DECLARE FUNCTION BltBitMap& LIBRARY
   DECLARE FUNCTION ViewPortAddress& LIBRARY
   LIBRARY "graphics.library"
   LIBRARY "intuition.library"

Als laatste tijdens de  initialisatie van het programma de eigen-
lijke blitter-subroutine.  Deze komt weer  achterin het programma
te staan :

   Blitter:
   copy%=BltBitMap&(Xn&,x1%,y1%,Xv&,x2%,y2%,sx%,sy%,200,255,0)
   RETURN


Tot zo ver de initialisatie van het spel.  Omdat het een en ander
hierboven door  elkaar staat nu nog eens  alles tot nu toe achter
elkaar :

   DECLARE FUNCTION BltBitMap& LIBRARY
   DECLARE FUNCTION ViewPortAddress& LIBRARY
   DECLARE FUNCTION ldscr& LIBRARY
   LIBRARY "ldscr.library"
   LIBRARY "graphics.library"
   LIBRARY "intuition.library"

   SCREEN 3,320,256,5,1
   WINDOW 3,,,0,3
   PALETTE 1,0,0,0
   Xn&=PEEKL(PEEKL(ViewPortAddress&(WINDOW(7))+36)+4)

   SCREEN 4,320,256,5,1
   WINDOW 4,,,0,4
   PALETTE 1,0,0,0
   Xv&=PEEKL(PEEKL(ViewPortAddress&(WINDOW(7))+36)+4)  


   REM HIER KOMT STRAKS HET PROGRAMMA


   Blitter:
   copy%=BltBitMap&(Xn&,x1%,y1%,Xv&,x2%,y2%,sx%,sy%,200,255,0)
   RETURN

   LeesScherm:
   Scherm$=Naam$+CHR$(0)
   sch&=ldscr& (SADD(Scherm$),WINDOW(7))
   RETURN

-----------------------------------------------------------------
