Eli jelppikään ja kertokaa miten lukea näppäimistöä konsolisovelluksessa? Enkä nyt tarkoita Console.ReadLine():a, vaan ihan suoraan napinpainalluksia ilman enterin odottamista.
eipä taida ilman apia onnistua
GetASyncKeyStatella onnistuu https://www.ohjelmointiputka.net/koodivinkit/
Jesh, pelittää, kiits. Vaan olisko jotain järkevämpää tapaa hoitaa looppaaminen, kuin näin:
' Pelilooppi. Do napit: If GetAsyncKeyState(65) Then : Move(3) : GoTo päivitys : End If ' A. If GetAsyncKeyState(68) Then : Move(1) : GoTo päivitys : End If ' D. If GetAsyncKeyState(83) Then : Move(2) : GoTo päivitys : End If ' S. If GetAsyncKeyState(87) Then : Move(0) : GoTo päivitys : End If ' W. GoTo napit päivitys: Päivitä() Loop
Move():lla tyyppi siis liikkuu ja Päivitä() piirtää namiskukkelit ruudulle uusiksi. Välkkyy inhottavasti suoralla juostaessa, joten jotain viivettä vissiin tarvitsisi. Onko tuollaisen pienen viiveen aiheuttamiseen jotain kätevää apia vai onnistuisko vb:n perusfunktioilla ilman enempiä ajastin-sotkuja? Ja tottakai hyvä jos noilla gotoille löytys kätsympi vaihtoehto.
' Pelilooppi. Do While True If GetAsyncKeyState(65) Then : Move(3) : Exit While : End If ' A. If GetAsyncKeyState(68) Then : Move(1) : Exit While : End If ' D. If GetAsyncKeyState(83) Then : Move(2) : Exit While : End If ' S. If GetAsyncKeyState(87) Then : Move(0) : Exit While : End If ' W. End While Päivitä() Loop
Kokeiles noin (en uskaltanut muokata koodiasi enempää, yhdelläkin loopilla selvittäisiin). Ja viivettä saat komentamalla System.Threading.Thread.Sleep(millisekunnit)
Katos juu, whilelläkin pääsi gotoista eroon. Kiitokset.
Aihe on jo aika vanha, joten et voi enää vastata siihen.