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 LOOP
Kiitos paljon!
Aihe on jo aika vanha, joten et voi enää vastata siihen.