让用户按下特定的键以在程序中前进
Make user press specific key to progress in program
我目前正在开发一款小型彩票机游戏,想添加一个“工作”机制。我创建了一个新方法并想添加多个任务,您必须按 特定键 就像 space栏例如多次。所以像这样(但实际上有效):
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()
方法 returns 一个 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
记录以确定按下了什么,等等。但是对于等待按下特定键的简单情况,这将起到作用。
我目前正在开发一款小型彩票机游戏,想添加一个“工作”机制。我创建了一个新方法并想添加多个任务,您必须按 特定键 就像 space栏例如多次。所以像这样(但实际上有效):
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()
方法 returns 一个 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
记录以确定按下了什么,等等。但是对于等待按下特定键的简单情况,这将起到作用。