如何在控制台应用程序中“键入”文本?

就像计算机在战争游戏中的表现一样 。 我已经开始了,但我不知道从哪里开始。

static void TypeLine(string line) { string output = null; char[] characters = line.ToCharArray(); for (int i = 0; i < characters.Length; i++) { output += characters[i]; Console.Clear(); } Console.WriteLine(output); } 

我的想法是拆分你想要它输出的字符串,添加一个字符,清除控制台,添加另一个,等等。 我到目前为止,但我真的不知道如何添加,然后清除,然后再添加。 如果您愿意,一些提示会很好,甚至是完整的代码。

最简单的方法可能是在角色之间进行Sleep()。 像这样的东西:

 static void TypeLine(string line) { for (int i = 0; i < line.Length; i++) { Console.Write(line[i]); System.Threading.Thread.Sleep(150); // Sleep for 150 milliseconds } } 

您要查找的效果是,在将字符串的每个字符写入控制台后,会产生大约10到50毫秒的短暂延迟,就像在此代码中一样:

 static void Main() { var myString = "Hey there" + Environment.NewLine + "How are you doing?"; foreach (var character in myString) { Console.Write(character); Thread.Sleep(30); } Console.WriteLine(); Console.ReadLine(); } 

在上面的代码中,我创建了一个包含换行符的字符串( Environment.NewLine )。 然后我使用foreach循环foreach该字符串的每个字符并将其逐个写入控制台。 在每个字符之后,线程将进入hibernate状态30毫秒( Thread.Sleep ),以便在该时间跨度之后再次工作。

如果您有任何其他问题,请随时提出。

对于输入字符有一些延迟,因为其他人说最好的方法是使用Thread.Sleep(time)

但实际上你可能想要添加更多细节。 例如,您可能希望自定义显示的字符(如您在给我们的video中看到的那样)但在控制台窗口中没有效果。

添加这些效果完全是另一个故事,这有点复杂。

我应该如何在Windows上创建自定义图形控制台/终端? 为你想要的东西提供良好的愿景;)