Console.KeyAvailable无法检测到密钥

时间:2019-03-09 19:22:36

标签: c# console

我试图在控制台上制作一个简单的蛇游戏(不吃东西,只蛇来回移动),但是当我按 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 个答案:

答案 0 :(得分:2)

删除Console.KeyAvalible-两者。您的程序通过循环,并立即进入ReadLine。

应如下所示:

while(Console.ReadKey(true).Key == ConsoleKey.UpArrow)
{
//code here-
}

答案 1 :(得分:1)

您可以尝试下面的代码,这对您有帮助。请不要忘记为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);
            }
        }