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.
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
Hii, tuo auttoi kumpaankin ongelmaan, kiitosta. Nyt hahmo kirmaa ilman mitään välistoppeja.
Aihe on jo aika vanha, joten et voi enää vastata siihen.