Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.54 KB | None | 0 0
  1. static bool SpeechEnd;//Diese Variable wird benötigt um das Typing abzubrechen
  2.         static bool Speaking;//Laufzeitüberprüfung
  3.         const int TypeSpeed = 50; //Diese Variable bestimmt den Typespeed
  4.         private static readonly char[] SlowChars = new char[] { '!', '?', ',', '.' }; //Char die hier gespeichert sind, werden mit leichter Verzögerung angezeigt.
  5.         public static void AnimatedText(string Text, bool speech)//Der Methodenkopf
  6.         {
  7.             SpeechEnd = false; //Setzt das Ende des Textes auf false weil der Text ja erst beginnt
  8.             ThreadPool.QueueUserWorkItem(delegate //Beginnt einen externen Thread im Hintergrund. Delegate sorgt dafür dass der in geschwungener Klammer angezeigte Code fehlerfrei durchgeführt wird.
  9.             {
  10.                 if (Speaking)//Sollte der Text schon brabbeln verhindert dies, das ein 2ter Thread gestartet wird der erneut brabbelt.
  11.                     return;
  12.                 Speaking = true;//Laufzeitüberprüfung
  13.                 for (int i = 0; i < Text.Length ; i++)//Zählschleife welche Zeichen für Zeichen ausgibt
  14.                 {
  15.                     if (!SpeechEnd)//Sollte der Nutzer durch Drücken irgendwelcher Tasten den Text überspringen wollen bricht diese Abfrage aus der for aus.
  16.                     {
  17.                         if (SlowChars.Contains(Text[i]))//Überprüft ob irgendwelche Zeichen aus Slowchars geschrieben müssen. Falls ja lässt sich das System etwas mehr Zeit.
  18.                         {
  19.                             Console.Write(Text[i]);
  20.                             Thread.Sleep(TypeSpeed * 10);
  21.                         }
  22.                         else
  23.                         {
  24.                             Console.Write(Text[i]);
  25.                             Thread.Sleep(TypeSpeed);
  26.                         }
  27.                     }
  28.                     else break;//Der Ausbruch aus der Forschleife wenn der Nutzer zu faul zum Lesen ist.
  29.                 }
  30.                 Console.WriteLine();//Nach Abschluss des Schreibens wird ein Absatz eingefügt
  31.                 Speaking = false;//Setzt das Speaking auf false um das brabbeln eines neuen Textes zu ermöglichen
  32.             });
  33.             Console.ReadKey(true);//Wenn eine Teste gedrückt wurde bricht das brabbeln ab
  34.             SpeechEnd = true;//Setzt SpeechEnd auf true um die ForSchleife am weiteren Tippen zu hindern
  35.             Console.Clear();//Wenn der Nutzer abbrechen will löscht die Konsole den gesamten Text
  36.             Console.WriteLine(Text);//und schreibt ihn neu
  37.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement