TIMER milliseconds, [branchLabel]

Timer milliseconds subName




Omschrijving: 

Dit commando beheert  een Windows timer. Dit is erg bruikbaar bij het onder controle 
houden van de snelheid van uitvoering van software (games en animaties bijvoorbeeld), 
of om een programma eigenschap te creëren waarbij periodiek iets wordt geactiveerd 
(een klok misschien, of een e-mail cliënt die nieuwe berichten controleert).
De TIMER wordt gedeactiveerd door het plaatsen van een tijdwaarde van 0, 
zonder een aftaketiket.  Er is slechts één timer.  De uit te voeren tijdwaarde 
en/of aftak etiket om uit te voeren kan op elk ogenblik worden veranderd door 
een nieuw TIMER commando te geven.  Er zijn 1000 milliseconden in één seconde. 
Een waarde van 1000 zorgt ervoor dat de timer om de één seconde afgaat.  
Een waarde van 500 laat de timer elke halve seconde afgaan, etc.

Gebruik:

Branch Label Handler:           
    'set a timer to fire in 3 seconds
    'using branch label event handler
    timer 3000, [itHappened]
    'wait here
    wait

[itHappened]
    'deactivate the timer
    timer 0
    confirm "It happened!  Do it again?"; answer
    if answer then
        'reactivate the timer
        timer 3000, [itHappened]
        wait
    end if
    end

Subroutine handler:

    'set a timer to fire in 3 seconds

    'using subroutine event handler
    timer 3000, itHappened
    'wait here
    wait

sub itHappened
    'deactivate the timer
    timer 0
    confirm "It happened!  Do it again?"; answer
    if answer then
        'reactivate the timer
        timer 3000, itHappened
    end if
    end sub


Wees voorzichtig!  
Als het programma probeert om meer code binnen een timer routine uit 
te voeren dan in het timer interval kan worden uitgevoerd, dan zullen 
de opeenhoping van timer tikken en het programma uitvoering blijven doorgaan 
in het snelst mogelijke tempo. Dit zou het programma kunnen laten vast lopen.  
Om vastlopen te vermijden, plaatst men een SCAN commando binnen de timer routine, 
zodat het programma weet wanneer de gebruiker andere controles activeert, 
of weet of u een venster afsluit.



PAUSES AND TIMERS

CONTROLLING THE ANIMATION Als de frames met animatie zonder pauzes worden getekend, kan de actie te snel zijn om te zien of te controleren op snellere computers. Een programma kan de snelheid controleren door animatie frames in een vastgesteld tijdinterval te tekenen met een TIMER, of het tekenen met een eenvoudige PAUZE SUBROUTINE te controleren. A REAL TIMER! De nieuwe TIMER van Liberty BASIC is perfect voor gebruik met animatie. Het zorgt ervoor dat naar het aftaketiket dat wordt gespecificeerd op het gegeven tijdinterval wordt gesprongen (in milliseconden). Er zijn 1.000 milliseconden in één seconde. Een halve seconde interval zou betekenen dat de millisecondenparameter 500 moet zijn. Een kwart seconde interval zou een millisecondenparameter van 250 vereisen en voor één tiende van een seconde zou u een millisecondenparameter van 100 moeten gebruiken. Het volgende voorbeeld zorgt ervoor dat een frame getekend wordt elk één tiende van een seconde: TIMER 100, [DrawFrame] Gebruik het volgende om de TIMER, uit te zetten: TIMER 0 De TIMER kan in de listing worden geactiveerd of worden gereactiveerd wanneer u wilt door gewoon het commando TIMER te herhalen. Het tijdinterval kan worden veranderd, zoals dat ook kan met het aftaketiket dat aangeeft waar de uitvoering vervolgen moet als de TIMER afgaat. Hier is een voorbeeld dat in het zelfde programma kon voorkomen zoals het voorbeeld van de TIMER hierboven: TIMER 250, [DrawExplosion] AN IMPORTANT NOTE ABOUT THE TIMER! De cpuklok "tikt" 18 keer per seconde. Dit betekent dat het ruwweg om de 56 milliseconden "tikt". Als het tijdinterval op 56 milliseconden of minder wordt geplaatst, zal de resulterende animatie op een hoogste snelheid van 18 frames per seconde lopen. Als een programma om de één of andere reden stopt, accumuleren de timer tikken zich en de geaccumuleerde tikken komen vrij wanneer het programma zijn actie hervat. Dit zou kunnen gebeuren wanneer het programma de gebruiker een notice bericht, bijvoorbeeld geeft. Als de actie om welke reden dan ook moet ophouden, is het noodzakelijk om een TIMER 0 commando uit te geven om zodoende de timer te stoppen. Wanneer de actie moet hervatten, dan wordt de timer opnieuw gestart met een TIMER ms, [BranchLabel] commando. A SIMPLE PAUSE SUBROUTINE Op een snelle computer, kunnen de frames voor animatie te snel lopen dan nodig is. Het is gemakkelijk om een eenvoudige pauze tussen de animatie frames te coderen. De volgende kleine subroutine genaamd "Pause" vereist een parameter voor het aantal milliseconden om tussen frames te pauzeren. Er zijn 1.000 milliseconden in één seconde. Een halve seconde interval zou betekenen dat de millisecondenparameter 500 moet zijn. Een kwart seconde interval zou een millisecondenparameter van 250 vereisen en voor één tiende van een seconde zou u een millisecondenparameter van 100 moeten gebruiken. sub Pause mil t=time$("milliseconds") while time$("milliseconds")TIMER VS PAUSE De TIMER zorgt ervoor dat een aftaketiket wordt uitgevoerd met een vastgesteld interval, dat in milliseconden wordt gemeten. Het zetten van dit interval op 250 (bijvoorbeeld) zal betekenen dat het aftaketiket worden uitgevoerd elke kwart seconde. Een PAUZE is precies wat het zegt. Het zorgt ervoor dat de actie het vastgestelde interval pauzeert. Pauzeren voor een kwart seconde TUSSEN animatie frames zal niet het zelfde zijn als het tekenen van een animatie frame elke kwart seconde, omdat naast de kwart seconde pauze, er tijd wordt gevergd om de code bij het aftaketiket uit te voeren. Het gebruiken van de TIMER resulteert in veel meer vlotte en nauwkeurigere timing voor animatie. See how to Add a Mask to sprites.