是否有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;,这样就不需要每次都键入名称。

最新更新