-----------------------------------------------------------------
      EEN SPEL MAKEN MET AMIGABASIC - BEWEGEN RUIMTESTATION
-----------------------------------------------------------------

De eerste van de drie overgebleven subroutines is diegene die het
ruimtestation beweegt en op het scherm zet.
We moeten daarvoor een aantal coordinaten uitrekenen.  Dat kunnen
we doen door het hele scherm uit te tekenen, of door natte vinger
werk, ofwel zet maar ergens neer en pas dat eventueel aan.

Ik heb de coordinaten op die  laatste manier berekend. Met behulp
van het  animatie-programmatje  uit de  blitter-tekst heb ik  een
positie gekozen midden op het scherm.
Omdat het ruimtestation kan  draaien moeten we bepalen welke  van
de 16 verschillende  plaatjes op het  scherm moet komen te staan.
We gebruiken daar een kleine berekening voor :

   x1%=(Schip-INT(Schip/4)*4)*64
   y1%=INT(Schip/4)*64

De vier plaatjes naast  elkaar liggen precies  64 puntjes uit el-
kaar. De plaatjes liggen in het volgende patroon :

   00  01  02  03

   04  05  06  07

   08  09  10  11

   12  13  14  15

Willen we ruimtestation 11  gebruiken dan is dat in de X-richting
het 4e plaatje en in de Y-richting het 3e plaatje.

Door de  formule SCHIP-INT(SCHIP/4)*4  bepalen we welk plaatje we
in X-richting willen gebruiken. Vul 11 voor de variabele SCHIP in
en de formule wordt : 11-INT(11/4)*4 = 11-(2)*4 = 11-8 = 3.  Drie
is het juiste antwoord omdat we bij 0 beginnen te tellen.
Om de juiste plaats op de tekening  te vinden  moeten we de  uit-
komst met 64 (pixels) vermenigvuldigen.

Met de  formule INT(SCHIP/4)  bepalen we  de Y-positie.  Nemen we
weer 11 dan wordt dat : INT(11/4) = 2. Twee omdat we ook hier be-
ginnen met 0. En we vermenigvuldigen weer met 64.

Nu wordt de routine ZetSchip de volgende :

   ZetSchip:
   x1%=(Schip-INT(Schip/4)*4)*64
   y1%=INT(Schip/4)*64
   sx%=62
   sy%=62
   x2%=128
   y2%=96
   GOSUB Blitter
   RETURN

Hierbij zijn x1 en y1 de  coordinaten van het ruimtestation op de
tekening met alle plaatjes.
X2  en y2 zijn de coordinaten  waar het ruimtestation  moet  ver-
schijnen in het speelveld.
Als laatste  zijn sx en  sy de breedte en hoogte  van het plaatje
dat verplaatst moet worden. Deze is 2 kleiner dan 64 omdat om elk
plaatje een rand getekend is.


Nu moet de variabele SCHIP veranderen als we de joystick bewegen.
Dit kunnen we het  beste doen  VOOR de  ZetSchip-routine omdat we
die steeds moeten aanroepen om het ruimtestation op het scherm te
zetten :

   BeweegSchip:
   z=STICK(2)
   IF z=0 THEN RETURN
   IF z= 1 THEN Schip=Schip+1:IF Schip=16 THEN Schip=0
   IF z=-1 THEN Schip=Schip-1:IF Schip=-1 THEN Schip=15

Met het  kommando STICK(2) wordt de  joystickpoort gelezen. Is de
waarde 0 dan  wordt de  joystick niet bewogen.  Er hoeft niets te
gebeuren. We keren met een RETURN terug.

Heeft STICK(2) de waarde 1 dan  beweegt de joystick  naar rechts.
We moeten  rechtsom draaien.  We doen dat door  bij de  variabele
SCHIP 1 op te tellen.
Dan moeten we testen of de waarde van SCHIP niet groter is dan 15
omdat we dan te ver zijn. Is de waarde 16 geworden dan moet het 0
worden.

Heeft STICK(2) de waarde  -1 dan beweegt de  joystick naar links.
Het verhaal is gelijk, alleen moet er nu 1 af en moeten we testen
of de waarde niet kleiner wordt dan 0.

Alles in de juiste volgorde wordt dat dan :

   BeweegSchip:
   z=STICK(2)
   IF z=0 THEN RETURN
   IF z= 1 THEN Schip=Schip+1:IF Schip=16 THEN Schip=0
   IF z=-1 THEN Schip=Schip-1:IF Schip=-1 THEN Schip=15

   ZetSchip:
   x1%=(Schip-INT(Schip/4)*4)*64
   y1%=INT(Schip/4)*64
   sx%=62
   sy%=62
   x2%=128
   y2%=96
   GOSUB Blitter
   RETURN

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