Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Näppäimistön lukua peliin

Schizo [03.07.2005 21:41:08]

#

Eli 2d-peliä olisin tekemässä. Ongelmana näppiksen lukeminen, koska Form1_KeyDown() lukee vain yhden näppäimen kerrallaan, joten esimerkiksi kahta nuolinäppäintä ei voi painaa päästäkseen liikkumaan sivusuunnassa. GetAsyncKeyState() auttoi hieman, nyt pääsee jo liikkumaan vinosuuntiin, mutta jos vaikka oikea nuoli on pohjassa, ja sitten näpäyttää toista näppäintä (ei pohjaan), ukko pysähtyy siihen, ikäänkuin peli ei enää huomaisi pohjassa olevaa oikeaa.

Lisäksi pohjaan painettu näppäin aiheuttaa pienen paussin ennenkuin se huomataan pohjassa olevaksi, joten juoksuun lähtevä pelihahmo ottaa ensin yhden askeleen, ja alkaa vasta sen jälkeen pinkoa. Voiko tuon kiertää jotenkin?

Käytössä siis vb.net.

nomic [04.07.2005 00:05:11]

#

Dim nappain(255) As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    nappain(KeyCode) = True
End Sub


Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    nappain(KeyCode) = False
End Sub

Olisikos tosta mitään apua? Tällä menetelmällä itse ainaskin selviän seuraavista tapauksista: Nappi kokoaika pohjassa, ei tule sitä ensimmäistä taukoa, voi olla monta nappia pohjassa.

Jos et ole varma jostain keycodesta, niin kokeile seuraavaa:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
msgbox keycode 'kertoo numerona, mitä nappia painettiin
End Sub

Schizo [04.07.2005 01:59:03]

#

Hii, tuo auttoi kumpaankin ongelmaan, kiitosta. Nyt hahmo kirmaa ilman mitään välistoppeja.

Vastaus

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

Tietoa sivustosta