Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Näppäinten lukitus *vb*

Mike [18.08.2002 10:51:56]

#

Oon tekemässä tai oikeastaan tehnyt näpytys pelin, mutta siinä on yksi ongelma juoksija liikkuu vain kuin näpyttää yhtä näppäintä. Elikkä onko Visual Basicissa mahdollista tehdä niin että kun käyttäjä painaa näppäintä a niin se lukittuu ja näppäin s "avautuu", joten käyttäjän pitää painaa näppäintä s että näppäin a avautuisi ja s taas lukittuisi.

Vilikki [18.08.2002 11:40:24]

#

Ensinnäkin kuvittelet vaikkapa että tekisit jonkun muuttujan, jossa on kaksi arvoa, 0 ja 1. Sitten lisäät sinne, missä osassa koodia tarkistetaan näppäimen painallus, semmoisen, että jos näppäintä "a" painettu, ja se joku muuttuja=0, niin joku muuttuja=1 ja lisäät sinne vauhtia...
Ja sitten jos näppäintä "s" painettu ja luomasi muuttuja=1, niin se muuttuja=0 ja lisäät vauhtia...

Vilikki [18.08.2002 11:41:16]

#

En jaksanut alkaa kirjoittelemaan koodia kun en kumminkaan visual basicin käyttöä tarkemmin muista...

(nimetön) [18.08.2002 14:30:37]

#

Enpä ihan tarkkaan tiedä onko alla oleva se mitä halusit, mutta malli on periaatteessa Vilikin selityksestä... tosin toteutettu boolean muuttujalla, mutta ajaa ihan saman asian.

Itse asiassa Vilikki tuntui selittävän jotain vauhdin lisääjää ja sinun selityksestäsi sain kuvan, että haluat toiminnon jossa käyttäjä pakotetaan naputtamaan vuorotellen A:ta ja S:ää?

Jos haluat vauhdin lisääjän tai vähentäjän sovella alla olevaa koodia siten, että boolean muuttujien tilalle vaihdat muuttujan joka lisääntyy tai vähenee riippuen napin painalluksesta...

Private bAKey, bSKey As Boolean
Private Sub Form_KeyPress(KeyAscii As Integer)

    ' KeyAscii muuttujas pitää sisälään painetun näppäimen Ascii vastineen
    ' A=65 ja B=85

    ' Muista alustettaessa projektia asettaa esim. Form_Load eventtiin:
    ' bAKey=true:bSKey=false
    ' Tämä rivi määrittelee, että A-nappia tulee painaa ensimmäiseksi


    ' Select case tarkistaa mitä nappia on painettu KeyAsciin avulla
    Select Case KeyAscii
    Case 65
        ' Tarkista onko sallittua painaa A-painiketta
        If bAKey = True Then
            bSKey = True
            bAKey = False
            ' Ja tässä laukaise A napin toiminto
        End If
    Case 85
        ' Tarkista onko sallittua painaa S-painiketta
        If bSKey = True Then
            bAKey = True
            bSKey = False
            ' Ja tässä laukaise S napin toiminto
        End If
    End Select
End Sub

Vastaus

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

Tietoa sivustosta