Sto facendo un piccolo gioco con sprite in cui il personaggio si sposta a seconda del tasto premuto (frecce). Ho notato che il metodo .KeyDown()
continua a essere chiamato fino a qualsiasi chiave rilasciata.Problema semplice ma complicato con KeyDown() in C#
ad es. Quando l'utente preme la freccia su, il metodo di .KeyDown()
continua a essere chiamato. Se si preme la freccia giù, sempre con la freccia su premuto, lo KeyEventArgs
riceve ora l'input dalla freccia giù. Infine, quando viene rilasciata la freccia su, l'evento .KeyDown()
smette di essere chiamato anche se la freccia giù viene ancora premuta.
Come faccio a "reimpostare" l'input e dire al compilatore di continuare a chiamare .KeyDown()
?
Avete provato a registrare quale chiave è responsabile per KeyDown in modo da poter controllare quando si rilascia un rilascio chiave? In questo modo, puoi continuare ad andare avanti come se la chiave fosse ancora inattivo fino a quando la chiave che ti interessa è quella che ha avviato la versione. – RonaldBarzell
Se la logica di gioco si trova in un loop di eventi in tempo reale, basta chiamarlo: 'Form_KeyDown (null, e)' –