Jiysea

Very Cool Circular Thing

Jun 3rd, 2022 (edited)
615
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.61 KB | None | 0 0
  1. public override void Generate()
  2.         {
  3.             VeryCool("sb/pixel.png", 11.25f, 71831, 82617, 93404, 320, 240, 100, 0.7, new Vector2(30, 2)); // The lines
  4.             VeryCool("sb/pixel.png", 11.25f, 81775, 82617, 93404, 320, 240, 70, 0.7, new Vector2(10, 8)); // The Boxes
  5.         }
  6.  
  7. public void VeryCool(String spritePath, float angleGap, double startTime, double endTime, double endtimeSpin, float x, float y, float distance, double fadeOpac, Vector2 scale)
  8.         {
  9.             // Animation
  10.             double spriteCount = 360 / (angleGap * 2);
  11.             double duration = endTime - startTime;
  12.             double startTimeIncrement = startTime;
  13.  
  14.             for (float angle = 0; angle < 180; angle += angleGap)
  15.             {
  16.                 float radian = MathHelper.DegreesToRadians(angle);
  17.                 var p = GetLayer("Foreground").CreateSprite(spritePath);
  18.  
  19.                 p.Fade(startTimeIncrement, fadeOpac);
  20.                 p.ScaleVec(startTimeIncrement, scale);
  21.                 p.Rotate(startTimeIncrement, radian);
  22.  
  23.                 p.Move(OsbEasing.OutCirc, startTimeIncrement - 150, startTimeIncrement, x + Math.Cos(radian) * (distance + 80), y + Math.Sin(radian) * (distance + 80),
  24.                                                                          +x + Math.Cos(radian) * (distance), y + Math.Sin(radian) * (distance));
  25.  
  26.                 startTimeIncrement += duration / spriteCount;
  27.                 p.Fade(endTime, 0);
  28.             }
  29.  
  30.             startTimeIncrement = startTime;
  31.             for (float angle = 180; angle < 360; angle += angleGap)
  32.             {
  33.                 float radian = MathHelper.DegreesToRadians(angle);
  34.                 var p = GetLayer("Foreground").CreateSprite(spritePath);
  35.  
  36.                 p.Fade(startTimeIncrement, fadeOpac);
  37.                 p.ScaleVec(startTimeIncrement, scale);
  38.                 p.Rotate(startTimeIncrement, radian);
  39.  
  40.                 p.Move(OsbEasing.OutCirc, startTimeIncrement - 150, startTimeIncrement, x + Math.Cos(radian) * (distance + 80), y + Math.Sin(radian) * (distance + 80),
  41.                                                                          +x + Math.Cos(radian) * (distance), y + Math.Sin(radian) * (distance));
  42.  
  43.                 startTimeIncrement += duration / spriteCount;
  44.                 p.Fade(endTime, 0);
  45.             }
  46.  
  47.             // Spin
  48.             for (double angle = 0; angle < 360; angle += angleGap)
  49.             {
  50.                 double startMove = endTime;
  51.                 double radian = MathHelper.DegreesToRadians(angle);
  52.                 var p = GetLayer("Foreground").CreateSprite(spritePath);
  53.                 p.Fade(endTime, fadeOpac);
  54.                 p.ScaleVec(endTime, scale);
  55.                 p.Rotate(startTimeIncrement, radian);
  56.  
  57.                 double loopTimes = 360 / angleGap;
  58.                 duration = (endtimeSpin - endTime) / loopTimes;
  59.                 for (double angle2 = 0; angle2 < 360; angle2 += angleGap)
  60.                 {
  61.                     double secRadian = MathHelper.DegreesToRadians(angle + angle2);
  62.                     double movRadian = secRadian + MathHelper.DegreesToRadians(angleGap);
  63.  
  64.                     p.Move(startMove, startMove + duration, x + Math.Cos(secRadian) * (distance), y + Math.Sin(secRadian) * (distance),
  65.                                                        x + Math.Cos(movRadian) * (distance), y + Math.Sin(movRadian) * (distance));
  66.                     p.Rotate(startMove, startMove + duration, secRadian, movRadian);
  67.  
  68.                     startMove += duration;
  69.                 }
  70.  
  71.                 p.Fade(endtimeSpin, 0);
  72.             }
  73.         }
Add Comment
Please, Sign In to add comment