Werken met Amos deel 102 """""""""""""""""""""""" MOVE X (Verplaats een sprite horizontaal) """"""""""""""""""""""""""""""""""""""""" MOVE X n,m$ MOVE X bepaalt een reeks horizontale bewegingen die achtereenvolgens uitgevoerd worden op animatie kanaal nummer n. n varieert van 0 tot 15 en verwijst naar een objekt die je eerder toegewezen had met het CHANNEL kommando. m$ bevat een reeks instrukties die de snelheid en de richting van het objekt bepalen. Deze kommando's worden tussen haakjes () gezet en worden alsvolgt geschreven: (speed,step,count) (snelheid,stap,tellen) Er is geen beperking tot het aantal kommando's die je in een enkele beweeg string kunt zetten, dan het beschikbare geheugen. Speed zet de vertraging op 50stigen van seconden tussen elke opeenvolgende stap. De snelheid kan varieren van 1 (zeer snel) tot 32767 (ontzettend langzaam). Step bepaalt het aantal pixels waarmee het objekt gedurende elke operatie verplaatst zal worden. Is deze stap positief dan gaat de sprite naar rechts en is die negatief dan gaat de sprite naar links. De verschenen snelheid van het objekt hangt van de kombinatie van de snelheid en de stap groottte af. Grote verplaat- singen gekoppeld aan een matige snelheid beweegt je objekt snel maar schokkerig over het scherm. Aan de andere kant zal een kleine verplaatsing gekombineerd met een hoge snelheid je objekt ook snel over het scherm bewegen, maar dan wel veel gelijkmatiger. De snelste snelheden die gemaakt kunnen worden in stappen van ongeveer 10 ( or -10). Count bepaalt het aantal keren dat de beweging herhaald wordt. Mogelijke waarden varieren van 0 tot 32767. Een getal van 0 zet de beweging op oneindig. Aan de boven staande kommando's kun je ook nog een van de volgende mogelijkhden aan het eind van de beweeg string toevoegen. De meest belangrijke van deze uitbreidingen is de L instruktie (for loop), die terug springt naar het begin van de string en de gehele volgorde vanaf het begin opnieuw uitvoert. Voorbeeld: Load"AMOS_DATALSprites/octopus.abk":Get Sprite Palette Sprite 1,130,100,1 : Rem Bepaal sprite 5 Move X 1,"(1,5,60)(1,-5,60)L" Move On Met de E keuze kun je het objekt stoppen als het een bepaald punt bereikt heeft op het scherm. Wijzig de tweede regel van onderen met: Move X 1,"(1,5,30)E100" Let er wel op dat de eind punten alleen werken als de x koordinaat van het objekt precies de waarde bereikt die je oorspronkelijk in de instruktie omschreven hebt. Als deze verhoging slecht gekozen is dan zal je objekt wegzakken in het eindpunt met een enkele sprong en de test werkt niet. Voorbeeld: Load "AMOS_DATA:Sprites/octopus.abk":Get Sprita Palette Channel 1 To Sprite 8: Chanel 2 To Sprite 10 Print At(0,5)+Looping OK" Sprite 8,130,100,1 Move X 1,"(1,10,30(1,-10,30)L' Move On Print At(0,10)+"Druk nu op een toets)" : Wai Key Sprite 10,140,150,2 Move X 2,"(1,15,20)L" : Move On 2 Print At(0,15)+"Oh oh!" : Wai Key MOVE Y (Verplaats een objekt vertikaal) """"""""""""""""""""""""""""""""""""""" MOVE Y n,m$ Deze instruktie maakt het MOVE X kommando kompleet, door je de mogelijkheid te geven het objekt vertikaal over het scherm te verplaatsen. Net als eerder verwijst n naar het nummer van een animatie volgorde die je aangezen hebt met het CHANNEL kommando en varieert van 0 tot 15. m$ bevat de beweeg string in hetzelfde formaat als MOVE X. Positieve waarden verplaatst het scherm naar beneden en negatieve naar boven. Voorbeelden: Load"AMOS_DATA:Sprites/octopus.abk":Get Sprite Palette Channel 1 To Sprite 8: Sprite 8,130,10,1 : Rem installeert een sprite Move Y 1,"10(1,1,180)L":Rem Loop sprite konstant van 10,10 naar 190,10 Channel 2 To Screen Display 0 : Rem Wijst scherm positie toe aan kanaal 2 Move Y 2,"(1,4,25)(1,-4,25)": Rem Beweeg het scherm op en neer Move On : Wait Key MOVE ON/OFF (Start/stop bewegingen) """"""""""""""""""""""""""""""""""" MOVE ON/OFF [n] Voordat je beweeg patronen uitgvoert moeten ze eerst met MOVE ON geaktiveerd worden. n verwijst naar de animatie volgorde die je wilt beginnen en kan liggen tussen 0 en 15. Als deze weggelaten wordt, worden al je bewegingen tegelijk geaktiveerd. MOVE OFF heeft het tegengestelde effekt: het stopt de bijgehorende beweging volgordes. MOVE FREEZE (Zet de sprite bewegingen tijdelijk stil) """""""""""""""""""""""""""""""""""""""""""""""""""""" MOVE FREEZE [n] Het MOVE FREEZE kommando zet de bewegingen van een of meer van je objekten stil op het scherm. Deze objekten kunnen weer gestart worden met het MOVE ON kommando. n is eventueel het nummer van een bepaald objekt wat gestopt moet worden. =MOVON (Geeft de verplaatsing toestand op) """""""""""""""""""""""""""""""""""""""""" x=MOVON(n) MOVON checkt of een bepaald objekt door MOVE X en MOVE Y in beweging is gezet. Het geeft een waarde van -1 (Waar) als objekt n in beweging is, anders krijg je een nul. Raak niet in de war met het MOVE ON kommando. Let er op dat MOVON alleen zoekt naar beweeg patronen die gemaakt zijn met MOVE kommando's. Het ontdekt geen enkele animatie die door AMAL veroorzaakt wordt. ANIM (Animeer een objekt) """""""""""""""""""""""""" ANIM n,a$ Anim flipt automatisch een objekt door een reeks plaatjes wat een gelijk matig animatie effekt op het scherm veroorzaakt. Deze animaties worden 50 keer per seconde met interupts uitgevoerd, zodat ze gelijktijdig met je Basic programma uitgevoerd worden. n is het nummer van het kanaal wat de sprite of bob aanwijst die geanimeert moet worden door deze instruktie. a$ bevat een serie instrukties die je animatie volgordes bepalen. Elke operatie wordt in twee delen uitgesplitst ingesloten door ronde haakjes "()". image is het nummer van het plaatje wat getoond wordt tijdens elk frame van je animatie. delay specifieert de lengte van de tijd dat het plaatje op het scherm getoond wordt (in vijftigsten van een seconde). Voorbeeld: Load"AMOS_DATA:SPrites/octopus.abk": Get Sprite Palette Channel 1 To Sprite 8 : Sprite 8,200,100,1 Anim 1,"(1,10)(2,10)(3,10)(4,10)" Anim On : Wait Key Net als bij de MOVE instruktie is er ook een L aanhangsel waarmee je de animaties konstant kunt laten lopen. Wijzig aldus het ANIM kommando in voorgaand voorbeeld in het volgende: Anim 1,"(1,10)(2,10)(3,10)(4,10)L" ANIM ON/OFF (Start en animatie) """"""""""""""""""""""""""""""" ANIM ON/OFF[n] """""""""""""" ANIM ON aktiveert een reeks animaties die eerder gemaakt zijn met het ANIM kommmando. n bepaalt het nummer van en individuele animatie volgorde die ingeleid wordt. Als deze weggelaten is starten alle animaties onmid- dellijk. ANIM OFF [n] """""""""""" Dit stopt een of meer animaties die eerder gestart zijn met ANIM ON ANIM FREEZE (Zet een animatie stil) """"""""""""""""""""""""""""""""""" ANIM FREEZE [n] """"""""""""""" ANIM FREEZE zet de huidige animatie volgorde tijdelijk stop op het scherm. n kiest een enkele animatie volgorde die gestopt moet worden. Is deze keuze niet ingeschakeld dan stoppen alle animaties. Ze kunnen ten allen tijde herstarten met de ANIM ON instruktie.