Console.KeyAvailable не определяет ключ - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь сделать простую игру со змеями в консоли (не съедая что-либо, только змейку, которая движется), но когда я нажимаю UpArrow , она ничего не делает.Я также пытался W , но вместо этого записывает w в консоль.

Код:

while(Console.KeyAvailable == true)
{
    if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.UpArrow)
    {
        Console.SetCursorPosition(x, y);
        Console.WriteLine("*");
        Console.WriteLine("*");
        Console.WriteLine("*");
        x++;
        Console.WriteLine(x);
    }
}

Console.ReadLine();

Ответы [ 2 ]

2 голосов
/ 09 марта 2019

Удалить Console.KeyAvalible - оба. Ваша программа проходит цикл и немедленно переходит на ReadLine.

Должно выглядеть так:

while(Console.ReadKey(true).Key == ConsoleKey.UpArrow)
{
//code here-
}
1 голос
/ 09 марта 2019

Вы можете попробовать приведенный ниже код. Это может быть полезно для вас. Не забудьте взять данные для x и y.

       while (Console.ReadKey(true).Key>0)
        {
            if (Console.ReadKey(true).Key == ConsoleKey.UpArrow)
            {
                Console.SetCursorPosition(x, y);
                Console.WriteLine("*");
                Console.WriteLine("*");
                Console.WriteLine("*");
                x++;
                Console.WriteLine(x);
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...