TextAnimation.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System.Text;
  2. namespace SinMaiLauncher
  3. {
  4. public static class TextAnimation
  5. {
  6. public static IEnumerable<string> LoadingTextSeq(int len)
  7. {
  8. IReadOnlyCollection<char> sym = ['甲', '申', '由', '申'];
  9. const char padding = '.';
  10. var symEnu = Loop(sym).GetEnumerator();
  11. while (true)
  12. {
  13. var sb = new StringBuilder();
  14. for (int i = 0; i < len; i++)
  15. {
  16. symEnu.MoveNext();
  17. sb.Clear();
  18. sb.Append(symEnu.Current);
  19. for (int j = 0; j < i; j++) sb.Append(padding);
  20. yield return sb.ToString();
  21. }
  22. }
  23. }
  24. private static IEnumerable<T> Loop<T>(IEnumerable<T> source)
  25. {
  26. while (true)
  27. {
  28. foreach (var item in source)
  29. {
  30. yield return item;
  31. }
  32. }
  33. }
  34. }
  35. }