Advertisement
Jiysea

Lyrics Thing

Jun 10th, 2022
949
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. public void generateLyric(String text, String pixel, double startTime, double endTime, Color4 color, Vector2 pos)
  2.         {
  3.             bool top = true;
  4.             double scale = 0.2;
  5.             double posX = 0;
  6.             double fadeOpac = 0.8;
  7.             double lineWidth = GetLineWidth(scale, text, thin);
  8.             double timeIncrement = startTime + 0.1;
  9.  
  10.             var box = GetLayer("Lyrics").CreateSprite(pixel);
  11.             box.ScaleVec(OsbEasing.OutExpo, startTime, endTime, new Vector2(0, 3), new Vector2((float)lineWidth + 50, 1));
  12.             box.Color(startTime, color);
  13.             box.Move(startTime, new Vector2(320, 265));
  14.             box.Fade(startTime, endTime, 0, 0.4);
  15.  
  16.             foreach (var letter in text)
  17.             {
  18.                 var texture = thin.GetTexture(letter.ToString());
  19.  
  20.                 if (!texture.IsEmpty)
  21.                 {
  22.                     Vector2 position = new Vector2((float)(pos.X - 0.5f * lineWidth) + (float)(posX + texture.OffsetFor(OsbOrigin.Centre).X * scale), 0);
  23.                     var sprite = GetLayer("Lyrics").CreateSprite(texture.Path, OsbOrigin.Centre, new Vector2(position.X, pos.Y));
  24.                     if (top)
  25.                     {
  26.                         sprite.Fade(startTime, 0);
  27.                         sprite.Scale(timeIncrement, scale);
  28.                         sprite.Color(timeIncrement, color);
  29.                         sprite.MoveY(OsbEasing.None, timeIncrement, endTime, pos.Y - 3, pos.Y);
  30.  
  31.                         timeIncrement += 5;
  32.                     }
  33.                     else
  34.                     {
  35.                         sprite.Fade(startTime, 0);
  36.                         sprite.Scale(timeIncrement, scale);
  37.                         sprite.Color(timeIncrement, color);
  38.                         sprite.MoveY(OsbEasing.None, timeIncrement, endTime, pos.Y + 3, pos.Y);
  39.  
  40.                         timeIncrement += 5;
  41.                     }
  42.                     sprite.Fade(startTime, endTime, 0, fadeOpac);
  43.  
  44.                 }
  45.  
  46.                 posX += texture.BaseWidth * scale;
  47.                 top = !top;
  48.             }
  49.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement