How to make text be “typed out” in console application?

后端 未结 3 1278
失恋的感觉
失恋的感觉 2021-01-01 05:48

Just like the way the computer does it in War Games. I\'ve started, but I don\'t know where to go from here.

static void TypeLine(string line)
{
    string o         


        
相关标签:
3条回答
  • 2021-01-01 06:13

    The easiest way may be to Sleep() between characters. Something like this:

    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
        }
    }
    
    0 讨论(0)
  • 2021-01-01 06:17

    For entering the characters with some delay as others said the best way is use Thread.Sleep(time).

    but actually there is some more details may you want to add. For example maybe you want to customize the character shown (as you can see in the video you gave us) but in a console windows there is no effect.

    Adding these effects is completely another story and that's a little complicated.

    How should I create a custom graphical console/terminal on Windows? give you a good vision for what you want ;)

    0 讨论(0)
  • 2021-01-01 06:28

    The effect you are looking for is that after each character of the string is written to the console a short delay of about 10 to 50 milliseconds is made, just like in this code:

    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();
    }
    

    In the code above, I create a string that has a line break in it (Environment.NewLine). Afterwards I use an foreach loop to run through every character of that string and write it to the console one by one. After each character, the thread is put to sleep for 30 milliseconds (Thread.Sleep) so that is just works again after that time span.

    If you have any further questions, please feel free to ask.

    0 讨论(0)
提交回复
热议问题