Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Ajastin QB:llä?

Codeprofile [23.01.2007 16:22:02]

#

Olen tekemässä semmoista peliä QB:llä, mutta taas kerran.... voit jo arvatakin.... ongelma....

Mitenkä QB:llä saisi tehtyä semmoisen ohjelman, joka laskisi sekunteja 20:stä 0:laan. Eli luku 20 pienenee yhdellä joka sekunti. Ja kun luku on nollassa, hypätään GOTO:lla tai GOSUB:lla tiettyyn kohtaan.

Eikös se nollajuttu tehdä tällein:

IF ajastin < 1 THEN ajastin = 0: GOTO aikaloppui

Mutta mitenkäs se lukujen laskeminen tehdään??

Eikä siinä vielä kaikki:
Mitenkä pystyy tekemään semmosen, että ajastimen käydessä (toisin sanoen 20:ssä sekunissa) tarvitsis rämpyttää mahdollisimman monta kertaa Z-näppäintä. Jos näppäintä onnistuu rämpyttämään vaikka yli 100-kertaa, ohjelma siirtyy tiettyyn kohtaan. Eli siis kun luku 20:ntä on muuttunut nollaksi, tarkistetaan kuinka monta kertaa näppäintä on painettu, ja sen mukaan siirrytään tiettyyn kohtaan.

Suurkiitokset etukäteen!

EDIT: mitä nopeammin vastaat, sitä suuremman kiitoksen saat. Olis mainaan 'pikkusen' kiire!

EDIT:
Tai toisin sanoen:

DO UNTIL INKEY$ = CHR$(27): LOOP
END

Tuo yllä oleva on ESC (CHR$(27), vai onko?), mutta mikä on CTRL tai Z. Vai onko Z vain 'z'. Entäs se [CTRL]. Mikä se on?

EDIT
Toisin sanoen...

agenttitehtava:
CLS
COLOR 6
 PRINT "RäPYTä JO!!"
TIMER ON
ON TIMER(1) GOTO rampyttaminen

rampyttaminen:
DO UNTIL INKEY$ = CHR$(numero): LOOP
DO UNTIL INKEY$ = CHR$(numero): LOOP
DO UNTIL INKEY$ = CHR$(numero): LOOP
DO UNTIL INKEY$ = CHR$(numero): LOOP
DO UNTIL INKEY$ = CHR$(numero): LOOP
DO UNTIL INKEY$ = CHR$(numero): LOOP
DO UNTIL INKEY$ = CHR$(numero): LOOP
DO UNTIL INKEY$ = CHR$(numero): LOOP
DO UNTIL INKEY$ = CHR$(numero): LOOP
GOTO onnistuipas
END

...miten tota tarvii muokata?

sqwiik [23.01.2007 18:31:45]

#

...melko rajustikin, sanoisin. Miettisin itse koodin rakenteen hieman uusiksi; esim. seuraavalla tavalla:

DIM Aika AS INTEGER
PRINT "Aloittaos..."
Aika = 20
TIMER ON
ON TIMER(1) GOTO Vahenna

DO
  ' Rämpytys
LOOP WHILE Aika > 0

Vahenna:
  Aika = Aika - 1
  RETURN

Codeprofile [25.01.2007 15:58:22]

#

kiitos. sovelsin tuota yhteen peliini: TOIMII!!

Juhko [26.01.2007 15:48:02]

#

Ja Codeprofilen ei kannata ruveta pelejä tekemään, ennen kuin hallitsee QBasicin perusteet..

Pelien tekeminen kannattaa aloittaa merkkigrafiikkapeleistä Omasta mielestäni ne ovat helpoimmat tehdä..

Latska [26.01.2007 16:03:16]

#

Codeprofile kirjoitti:

Tuo yllä oleva on ESC (CHR$(27), vai onko?), mutta mikä on CTRL tai Z. Vai onko Z vain 'z'. Entäs se [CTRL]. Mikä se on?

Näppäinkoodeihin on täällä ihan oma tutustumisen arvoinen opaskin.

neau33 [26.01.2007 16:35:27]

#

Heippa pojat!

Tutustumalla INP() funktioon saatte QB:ssä näppäimistöstä irti ENEMMÄN...

'esim:
DO
KeyCode& = INP(&H60) 'palauttaa eri arvon painettaessa/palautettaessa
IF KeyCode& <> OldState& THEN
LOCATE 1, 1: PRINT KeyCode&: OldState& = KeyCode&
END IF
LOOP UNTIL KeyCode& = 1

Vastaus

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

Tietoa sivustosta