就像computer does it in War Games的方式一样。我已经开始了,但我不知道从哪里开始。
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);
}
我的想法是拆分你想要它输出的字符串,添加一个字符,清除控制台,添加另一个,等等。我到目前为止,但我真的不知道如何添加,然后清除,然后再添加。如果你愿意的话,一些提示会很好,甚至是完整的代码。
答案 0 :(得分:6)
最简单的方法可能是在角色之间进行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
}
}
答案 1 :(得分:3)
您正在寻找的效果是,在将字符串的每个字符写入控制台后,会产生大约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
循环遍历该字符串的每个字符并将其逐个写入控制台。在每个字符之后,线程将进入休眠状态30毫秒(Thread.Sleep
),以便在该时间跨度之后再次工作。
如果您有任何其他问题,请随时提出。
答案 2 :(得分:3)
如果其他人说最好的方法是使用Thread.Sleep(time)
。
但实际上您可能想要添加更多细节。例如,您可能希望自定义显示的字符(如您在视频中所示),但在控制台窗口中没有效果。
添加这些效果完全是另一个故事,而且有点复杂。
How should I create a custom graphical console/terminal on Windows?为你想要的东西提供良好的愿景;)