Console.ReadKey() 有替代品吗?

Is there a replacement to Console.ReadKey()?

我需要一个 Console.ReadKey() 的替代品,这样我就可以一次按下多个键。

我需要这个是因为我正在用 C# 制作控制台 ASCII 游戏引擎。如果我做了一个可控的播放器,我只能向上、向下、向左和向右移动。根本没有对角线移动,只是因为 Console.ReadKey() 允许一次按下一个键。

如有任何帮助,我们将不胜感激! :)

我可以将包安装到我的解决方案项目中

按键输入的函数是这样的(每帧都会调用它来检查按键是否被按下):

public static char Key() // returns the pressed key in char
        {
            ConsoleKeyInfo keyPress;
            if (Console.KeyAvailable) // will read the key only if it is pressed (can cause input lag on low frame rates)
            {
                keyPress = Console.ReadKey(true);
                return char.ToUpper(keyPress.KeyChar);
            }
            return default;
        }

我找到了更好的替代品!只需安装名为 EZInput 的 NuGet 包,这将允许更好地控制一次输入一个键。

我尝试在网上查找 EZinput 的示例和文档,但找不到任何内容。我学会了如何自己使用它。很简单,只需在代码中输入 EzInput 和点,它就会显示它所提供的所有内容。

如果你想按 W 来做某事,你应该这样做:

if (EZInput.Keyboard.IsKeyPressed(EZInput.Key.W))
{
    // Do something...
}

不过最好输入using EZInput;这样就不用每次都输入名字了