Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Nappi alhaalla! *qb*

gamehouse [22.05.2007 15:36:51]

#

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?

Antti Laaksonen [22.05.2007 17:19:54]

#

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

gamehouse [22.05.2007 17:46:00]

#

Kiitos paljon!

Vastaus

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

Tietoa sivustosta