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;
这样就不用每次都输入名字了
我需要一个 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;
这样就不用每次都输入名字了