c # консольная змея застревает при длительном нажатии клавиши
Я только начал изучать программирование пару месяцев назад и решил заняться консольной игрой в змею. Все прекрасно работает, ожидают одной вещи.
Если моя змея идет вверх, и я нажимаю стрелку внизи держи это нажатымМоя змея просто останавливается и останавливается даже на некоторое время после того, как я перестаю нажимать кнопку.
То же самое происходит, если моя змея движется направо и я нажимаю стрелку вправо слишком долго, я на некоторое время теряю контроль (но змея не останавливается). Это происходит для каждого пути (влево, вправо, вверх, вниз).
Я попытался сравнить cki с другим ConsoleKeyInfo с небольшой задержкой между ними, но это не имеет значения. Если я удерживаю клавишу нажатой, моя программа просто остается на этом месте и обновляется для клавиши. (по крайней мере, я думаю, что это проблема)
Это «особенность» Console.ReadKey или есть какой-то способ предотвратить это?
Имейте в виду, что я только начал, так что я пока не знаю о продвинутых вещах.
Все работает безупречно, пока я не удерживаю кнопку нажатой более 1 секунды.
public void LiikutaMato() //movesnake
{
if (Console.KeyAvailable)
{
ConsoleKeyInfo cki;
cki = Console.ReadKey(true); // <-- I believe this is where it gets stuck
}