Tässäpä tälläinen, sekunnistakin pienemmät luvut menee aika hyvin. Ei täysin samanlainen kuin sleep, ei voi hypätä yli painamalla jotain näppäintä. Voi pistää, jos tahtoo. Kommentit ovat tervetulleita... ;-)
DECLARE SUB setlps ()
DECLARE SUB viive (aika!)
DIM SHARED lps AS SINGLE       'loops per second
CLS
'setlps aina alkuun... ;-)
setlps
PRINT "Testataan: seuraava viesti tulee 3 sek. päästä"
viive 3
CLS
PRINT "Pommi asetettu..."
FOR j = 1 TO 1000
        viive .01
        LOCATE 2, 1
        PRINT 10 - j * .01
NEXT j
CLS
COLOR 4
PRINT "PUM!"
SUB setlps
        aika = TIMER
        FOR i = 1 TO 999999: NEXT i
        aika = TIMER - aika             'kuinka paljon äskeiseen kului aikaa...
        lps = INT(999999 / aika)        'loops per second, kuinka paljon yhteen
                                        'sekuntiin mahtuu for..next-silmukoita...
        'siinäpä se, alkuasettelut on tehty...
END SUB
SUB viive (aika)
        FOR i = 0 TO aika * lps: NEXT i
END SUBJa tuon tein, kun joku (muistikatkos, en muista, kuka...) kysyi jotain tuollaista, eli sekunnista pienempää viivettä...
Hehe.. mielenkiintoinen tapa.. mutta miksi et tehnyt tuota suoraan TIMER:illa?
Timeria rämpätessä käy niin, että sillä ei ihan kaikkein pienimpiin päästä (esim. 0.02) ilman, että aikaa kuluisi enemmän kuin tuo 0.02. Mielestäni tuo toimii vähän paremmin...
Mielenkiintoista.... tuo viive suoritti 100kpl 0.01 sekunnin viiveitä n. 1 sekunnissa, mutta timer-systeemi, jonka testiksi väsäsin, pääsi vastaavasta 5.5 sekunnissa... ;-)
Tuo on kyllä totta.
Vaikuttaisi muuten siltä, että liian nopealla koneella "loops per second" saa ylisuuria arvoja.
Itse kun kokeilin nopealla koneella niin 3 sekuntia venyi ihmeen pitkäksi.. en edes jaksanut jäädä odottelemaan :)
Mielenkiintoinen tapa, silti.. :)
Hyvä
Mielenkiintoinen tapa, mutta saman voisi hoitaa näin:
SOUND 0,1
Ei ehkä ihan niin pieniin odottamisiin päästä, mutta varsin helppo tapa tehdä odotus, jota ei voi skipata. Tapa tehdä odotus, jonka voi skipata:
odotus = 1 DO SOUND 0, 1 odotus = odotus + 1 LOOP UNTIL INKEY$ = CHR$(13) OR odotus = 5
Skippaaminen ei toimi tuolloin ihan täydellisesti, mutta riittävän hyvin omasta mielestäni.
Chaosworm ->tuo toimii mutta ei jos haluaa käyttää ääniä(SOUNDilla). Mä tein ittekki tuommoosen johonki mun kirijastoon.
Aihe on jo aika vanha, joten et voi enää vastata siihen.