让用户按特定键在程序中前进



我目前正在开发一款小型彩票主机游戏,想添加一个"工作;技工我创建了一个新方法,并希望添加多个任务,其中您必须按特定键,如空格键,例如多次。所以像这样的东西(但实际上有效(:

static void Work()
{
Console.WriteLine("Task 1 - Send analysis to boss");
Console.WriteLine("Press the spacebar 3 times");
Console.ReadKey(spacebar);
Console.ReadKey(spacebar);
Console.ReadKey(spacebar);
Console.WriteLine("Task finished - Good job!");
Console.ReadKey();
}

Console.ReadKey()方法返回一个ConsoleKeyInfo结构,该结构为您提供了所需的关于按下了哪些键和修饰符的所有信息。您可以使用这些数据来过滤输入:

void WaitForKey(ConsoleKey key, ConsoleModifiers modifiers = default)
{
while (true)
{
// Get a keypress, do not echo to console
var keyInfo = Console.ReadKey(true);
if (keyInfo.Key == key && keyInfo.Modifiers == modifiers)
return;
}
}

在你的用例中,你会这样称呼它:

WaitForKey(ConsoleKey.SpaceBar);

或者,您可以添加一个WaitForSpace方法,该方法专门检查不带修饰符的ConsoleKey.SpaceBar

对于菜单和一般输入处理等更复杂的键盘交互,你会想要更强大的功能,但基本概念是一样的:使用Console.ReadKey(true)来获得输入(不显示按下的键(,检查生成的ConsoleKeyInfo记录以确定按下了什么,等等。但对于等待按下特定键的简单情况,这就可以了。

相关内容

  • 没有找到相关文章

最新更新