Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Sleepin korvaaja

Sivun loppuun

Vilikki [30.12.2002 17:23:52]

#

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 SUB

Vilikki [31.12.2002 17:34:00]

#

Ja tuon tein, kun joku (muistikatkos, en muista, kuka...) kysyi jotain tuollaista, eli sekunnista pienempää viivettä...

thefox [31.12.2002 18:10:24]

#

Hehe.. mielenkiintoinen tapa.. mutta miksi et tehnyt tuota suoraan TIMER:illa?

Vilikki [31.12.2002 19:03:02]

#

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...

Vilikki [31.12.2002 19:11:02]

#

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... ;-)

thefox [31.12.2002 20:00:21]

#

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.. :)

KimmoKM [02.01.2003 20:15:16]

#

Hyvä

Chaosworm [02.03.2007 13:47:26]

#

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.

Dude [21.08.2007 16:12:10]

#

Chaosworm ->tuo toimii mutta ei jos haluaa käyttää ääniä(SOUNDilla). Mä tein ittekki tuommoosen johonki mun kirijastoon.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta