c # konsola wąż utknie na długim naciśnięciu klawisza
Właśnie zacząłem uczyć się programowania kilka miesięcy temu i postanowiłem zrobić konsolową grę snake. Wszystko działa świetnie, oczekując na jedno.
Jeśli mój wąż idzie w górę i naciskam strzałkę w dółi trzymaj to wciśnięte, mój wąż po prostu zatrzymuje się i zostaje zatrzymany nawet chwilę po tym, jak przestanę naciskać przycisk.
To samo dzieje się, gdy mój wąż idzie w prawo i zbyt długo naciskam strzałkę w prawo, tracę kontrolę na pewien czas (ale wąż nie zatrzymuje się). Zdarza się to w każdy sposób (w lewo, w prawo, w górę, w dół).
Próbowałem porównać cki z innym ConsoleKeyInfo z niewielkim opóźnieniem między nimi, ale to nie ma znaczenia. Jeśli trzymam wciśnięty klawisz, mój program po prostu pozostaje na miejscu i aktualizuje klucz. (przynajmniej myślę, że to problem)
Czy jest to „cecha” Console.ReadKey, czy jest to w jakiś sposób z tym związane?
Pamiętaj, że właśnie zacząłem, więc jeszcze nie wiem o zaawansowanych rzeczach.
Wszystko działa bez zarzutu, o ile nie trzymam klucza wciśniętego dłużej niż 1 sekundę.
public void LiikutaMato() //movesnake
{
if (Console.KeyAvailable)
{
ConsoleKeyInfo cki;
cki = Console.ReadKey(true); // <-- I believe this is where it gets stuck
}