如何制作文字"输入"在控制台应用?

时间:2014-08-16 05:49:01

标签: c# string console-application

就像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);
}

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

3 个答案:

答案 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?为你想要的东西提供良好的愿景;)