WERKEN MET AMOS deel 74 """"""""""""""""""""""" AUTOBACK 1 (Half automatische methode) Verricht elke grafische operatie in beide schermen de logical en de physical. Er wordt geen rekening gehouden met je bobs, dus dit systeem moet je alleen handhaven als je buiten het spel gebied tekent. Anders dan de standaard mode is het niet nodig de volgende vertikale blanke periode af te wachten. Mode 1 is daarom zo ideaal voor kontrole panelen of score tabellen, die steeds opgewaardeerd moeten worden tijdens het spelen van het spel. AUTOBACK 0 (Hand mode) Stopt het AUTOBACK systeem in zijn spoor. Alle grafieken worden nu rechtstreeks naar het logical scherm gezet op de maximum snelheid. Je moet deze optie gebruiken als je herhaaldelijk grote delen van de achtergond tijdens de duur van het spel moet hertekenen. Hiermee ben je in staat om botsingenveroorzakende routines uit te laten voeren met regelmatige tussenpozen, zonder de kwaliteiten van de animatie effekten de vernietigen. Hier komt een typpische programma loop om te onderzoeken. Bob Update Off : Rem Wist automatisch alle scherm hertekenen Repeat Screen Swap Wait Vbl Rem Wist je bobs van het scherm Bob Clear Rem Rem Teken nu elke grafiek die gewijzigd is. Rem Verricht je spel routines (Botsingen... enz) Remn Update (herteken) de bob plaatjes Rem Bob Draw Rem Swap physical and logical screens Until WIN: Rem Ga door totdat het spel beeindigd is. Wij wijzen je erop dat deze procedure alleen werken zal als er een zachte voortgang van scherm naar scherm is. Het is geheel aan jou om de inhoud van de physical en de logical schermen goed in de pas te houden. Stel dat je bijvoorbeeld een bob over een serie random rechthoeken wil laten zien. Dan moet je de volgende routine eens proberen: Load "AMOS_DATA:Sprites/octopus.abk" : Flash Off : Get Sprite Palette Double Buffer : Cls 0 : Autoback 0 : Update Off Bob 1,160,100,1 Do Bob Clear X=Rnd(320)+1 : Y=Rnd(22)+1 : W=Rnd(8))+! : H=Rnd(50)+1 : I=Rnd(15) Ink I : Bar X,Y To W,Y+H Rem Dit zou eigenlijk een van je bots routines oproepen Bob Draw SCreen Swap : Wait Vbl Loop Maar daar er geen verbinding tussen de physical en de logical schermen is, flipt het beeld konstant van scherm naar scherm. Om dat probleem de baas te kunnen moet je het autoback systeem alsvolgt nabootsen: Load"AMOS_DATA:Sprites/Octopus.abk" : Flas Off : Get Sprite Palette Doubble Buffer : Cls 0 : Autoback 0 : Update Off Bob 1,160,100,1 Do Rem Update (herschrijf) eerste scherm Screen Swap : Wait Vbl Bob Clear X=Rnd(320)+1 : Y=Rnd(22)+1 : W=Rnd(8))+1 : H=Rnd(50)+1 : I=Rnd(15) Ink I : Bar X,Y To W,Y+H Bob Draw Rem Update (herschrijf tweede scherm SCreen Swap : Wait Vbl Bob clear Ink I : Bar X,Y To X+W,Y+H Bob Draw Loop De twee schermen zijn nu hertekend met precies dezelfde informatie en het getoonde beeld blijft staan als een rots, zelfs al heerst er grote aktiviteit in de achtergrond.