我正在用c#写一篇文字冒险作为学校作业,我已经遇到了一个问题。
我做了一个函数来输出这样的句子:
public static void Zin (string zin)
{
foreach (char c in zin)
{
Console.Write(c);
Thread.Sleep(50);
}
现在这样可行,但我想实现当玩家点击回车键时,会立即在控制台上输入句子。
我不知道该怎么做。我已经尝试在foreach循环中使用while循环来检查输入是否被击中然后打印出句子但是这不起作用。
提前致谢!
答案 0 :(得分:1)
您可以使用Console.KeyAvailable
属性来确定是否已按下了未通过任何Console.Read*
方法读取的键。
按下键时,跳过循环中的等待。在循环之后,读取循环期间已按下的所有键,以便稍后使用Console.Read*
时不会返回它们。
public static void Zin(string zin)
{
foreach (char c in zin)
{
Console.Write(c);
// Only wait when no key has been pressed
if (!Console.KeyAvailable)
{
Thread.Sleep(50);
}
}
// When keys have been pressed during our string output, read all of them, so they are not used for the following input
while (Console.KeyAvailable)
{
Console.ReadKey(true);
}
}