Teen pientä peliä QB:llä ja yhdessä tehtävässä täytyy pitää Y- nappia pohjassa 3 sek. En tiedä, miten sen toteuttaisin! Saisinko apua?
Näppäimistön tapahtumia pystyy tutkimaan INP-funktiolla portista &H60. Jokaisella näppäimellä on oma koodinsa (scan-koodit). Jos koodi tulee sellaisenaan, näppäin on painettu alas. Jos taas koodiin on lisätty luku 128, näppäin on nostettu ylös. Näin pystyy silmukassa pitämään kirjaa painetuista näppäimistä. Jopa alkeellinen näppäimistökäsittelijä on toteutettavissa.
Tähän toteutukseen liittyy muutamia ongelmia, joista vakavin on, että jos yrittää valvoa monia näppäimiä yhtä aikaa, osa tapahtumista saattaa jäädä huomaamatta. Kuitenkin yhden näppäimen tarkkailun pitäisi onnistua ihan kelvollisesti. Lisäksi näppäimistöpuskurin kanssa voi tulla hankaluuksia, mistä on seurauksena piipitystä ja näppäimistön toimimattomuus. Tähän tepsii INKEY$-funktion kutsuminen aika ajoin.
tila% = 0
kerrat% = 0
DO
nappi% = INP(&H60)
' Y alas ensimmäisen kerran
IF nappi% = 21 AND tila% = 0 THEN
PRINT "Y-nappi alas"
aika! = TIMER
tila% = 1
END IF
' Y ylös ensimmäisen kerran
IF nappi% = 21 + 128 AND tila% = 1 THEN
PRINT "Y-nappi ylös"
PRINT "Oli painettuna"; TIMER - aika!; "s"
tila% = 0
END IF
' Esc lopettaa ohjelman
IF nappi% = 1 THEN
END
END IF
' näppäimistöpuskurin tyhjennys
kerrat% = kerrat% + 1
IF kerrat% = 100 THEN
turha$ = INKEY$
kerrat% = 0
END IF
LOOPKiitos paljon!
Aihe on jo aika vanha, joten et voi enää vastata siihen.