コード例 #1
0
 public static void MoveCurve(Sprite light, double startTime, double endTime, int angle1, int angle2, int xc, int yc, double offsetx, double offsety, int radius)
 {
     var radangle1 = angle1 * (Math.PI / 180.0);
     var radangle2 = angle2 * (Math.PI / 180.0);
     int x1 = (int)(radius * Math.Sin(radangle1 - Math.PI / 2) + xc);
     int y1 = (int)(radius * Math.Sin(radangle1) + yc);
     int x2 = (int)(radius * Math.Sin(radangle2 - Math.PI / 2) + xc - offsetx);
     int y2 = (int)(radius * Math.Sin(radangle2) + yc - offsety);
     light.Move(startTime, endTime, x1, y1, x2, y2);
 }
コード例 #2
0
 public void Flash(int startTime)
 {
     Sprite white = new Sprite(@"sb\etc\p.png", Sprite.origin.BottomCentre);
     white.Fade(startTime, startTime + beat / 2, .7, 0);
     white.Scale(startTime, scale);
     white.Move(startTime, 320, 480);
     Color2 c = Color2.HSL2RGB(rand.Next(1, 100) / 100.0, .4, .8);
     white.Color(startTime, c.red, c.green, c.blue);
     white.Parameters(startTime, startTime, "A");
 }
コード例 #3
0
        public void DrawWheels(double startTime, double endTime, int x, int y, double scale, int color, int aps)
        {
            double angle = Math.Abs(aps) * (endTime - startTime) / 1000;

            int amount = 16;
            double interval = 360 / amount;
            bool inv = aps < 0;
            for (double i = 0; i < 180 - 20; i += interval)
            {
                Sprite gear = Mathematics.DrawLines(startTime, 250 * scale, 35 * scale);
                gear.Rotate(startTime, endTime, i + (inv ? angle : 0), i + (inv ? 0 : angle));
                gear.Fade(startTime, startTime + beat / 2, 0, 1);
                gear.Fade(endTime - beat / 2, endTime, 1, 0);
                gear.Move(startTime, x, y);
            }

            Sprite mid = new Sprite(string.Format(@"sb\etc\stripe{0}.png", color));
            mid.Scale(scale - .03 * scale);
            mid.Move(x, y);
            mid.Fade(startTime, startTime + beat, 0, 1);
            mid.Fade(endTime - beat / 2, endTime, 1, 0);
            mid.Rotate(startTime, endTime, 0 + (inv ? angle : 0), 0 + (inv ? 0 : angle));

            Sprite outer = new Sprite(@"sb\etc\outer.png");
            outer.Scale(scale);
            outer.Move(x, y);
            outer.Fade(startTime, startTime + beat / 2, 0, 1);
            outer.Fade(endTime - beat / 2, endTime, 1, 0);

            Sprite inner = new Sprite(@"sb\etc\circle.png");
            inner.Scale(scale * .6);
            inner.Move(x, y);
            inner.Fade(startTime, startTime + beat / 2, 0, 1);
            inner.Fade(endTime - beat / 2, endTime, 1, 0);
        }
コード例 #4
0
        public void DrawNameThing()
        {
            string[][] names =
                                {
                                    new string[]
                                    {
                                        Translate("D"),
                                        Translate("e"),
                                        Translate("p"),
                                        Translate("t"),
                                        Translate("h"),
                                        Translate("s"),
                                    },

                                    new string[]
                                    {
                                        Translate("C"),
                                        Translate("r"),
                                        Translate("y"),
                                        Translate("s"),
                                        Translate("t"),
                                        Translate("a"),
                                        Translate("l"),
                                    }
                                };
            int offsetx = 320;
            int y = 110;
            double size = .7;
            double size2 = size * .7;
            double radius = 80;
            double letterSize = .4;
            int lineLength = 215;
            int lineWidth = 40;
            int dist = 20;
            int offsetLettersX = -5;
            int offsetLettersY = 0;
            Color2 c = new Color2(148, 196, 255);

            //left: Depths
            Sprite line1 = Mathematics.DrawLines(beginning, 1, lineWidth, Sprite.origin.TopLeft);
            line1.Move(beginning, 320 - offsetx, y - (int)radius);
            Mathematics.ScaleLines(line1, 1, beginning + beat, beginning + beat * 2, lineLength, lineWidth);
            line1.Color(c.red, c.green, c.blue);
            line1.Fade(beginning + beat, beginning + beat * 2, 0, 1);
            line1.Fade(ending - beat * 2, ending - beat, 1, 0);

            Sprite circle1 = new Sprite(@"sb\etc\circle.png");
            circle1.Move(beginning, 320 - offsetx, y);
            circle1.Fade(beginning, beginning + beat, 0, 1);
            circle1.Fade(ending - beat, ending, 1, 0);
            circle1.Scale(beginning, size);

            Sprite circle2 = new Sprite(@"sb\etc\circle.png");
            circle2.Move(beginning, 320 - offsetx, y);
            circle2.Fade(beginning, beginning + beat, 0, 1);
            circle2.Fade(ending - beat, ending, 1, 0);
            circle2.Scale(beginning, size2);
            circle2.Color(c.red, c.green, c.blue);

            for (int i = 0; i < names[0].Length; i++)
            {
                Sprite letter = new Sprite($@"sb\text\{names[0][i]}.png", Sprite.origin.TopCentre);
                letter.Move(beginning, 320 - offsetx + (int)radius + offsetLettersX + i * dist, y - (int)radius - offsetLettersY);
                letter.Fade(beginning + beat * 2, beginning + beat * 2.5, 0, 1);
                letter.Fade(ending - beat * 2, ending - beat, 1, 0);
                letter.Scale(letterSize);
            }

            //right: Crystal
            Sprite line2 = Mathematics.DrawLines(beginning, 1, lineWidth, Sprite.origin.BottomRight);
            line2.Move(beginning, 320 + offsetx, y + (int)radius);
            Mathematics.ScaleLines(line2, 1, beginning + beat, beginning + beat * 2, lineLength, lineWidth);
            line2.Color(c.blue, c.red, c.green);
            line2.Fade(beginning + beat, beginning + beat * 2, 0, 1);
            line2.Fade(ending - beat * 2, ending - beat, 1, 0);

            Sprite circle3 = new Sprite(@"sb\etc\circle.png");
            circle3.Move(beginning, 320 + offsetx, y);
            circle3.Fade(beginning, beginning + beat, 0, 1);
            circle3.Fade(ending - beat, ending, 1, 0);
            circle3.Scale(beginning, size);

            Sprite circle4 = new Sprite(@"sb\etc\circle.png");
            circle4.Move(beginning, 320 + offsetx, y);
            circle4.Fade(beginning, beginning + beat, 0, 1);
            circle4.Fade(ending - beat, ending, 1, 0);
            circle4.Scale(beginning, size2);
            circle4.Color(c.blue, c.red, c.green);

            for (int i = 0; i < names[1].Length; i++)
            {
                Sprite letter = new Sprite($@"sb\text\{names[1][i]}.png", Sprite.origin.BottomCentre);
                letter.Move(beginning, 320 + offsetx - (int)radius - offsetLettersX - (names[1].Length - i - 1) * dist, y + (int)radius + offsetLettersY);
                letter.Fade(beginning + beat * 2, beginning + beat * 2.5, 0, 1);
                letter.Fade(ending - beat * 2, ending - beat, 1, 0);
                letter.Scale(letterSize);
            }
        }
コード例 #5
0
        public void BubblingThing(double startTime, double endTime, int xc, int yc, int length, int dir)
        {
            int x1, x2;
            x1 = xc - length / 2;
            x2 = xc + length / 2;
            int rate = (int)((endTime - startTime) / 1000 * 20);
            for (int i = 0; i < rate; i++)
            {
                int dist = 20 + rand.Next(0, 30);
                double start = rand.Next((int)startTime, (int)(endTime));
                double end = start + rand.Next((int)beat * 4, (int)beat * 16);
                int x = rand.Next(x1, x2);
                double size = rand.Next(10, 70) / 1000.0;
                Color2 c = Color2.HSL2RGB((double)(x - x1) / (x2 - x1), .8, .7);

                Sprite bubble = new Sprite(@"sb\etc\circle.png", dir == 1 ? Sprite.origin.TopCentre : Sprite.origin.BottomCentre);
                bubble.Fade(start, start + beat, 0, 1);
                bubble.Fade(end - beat, end, 1, 0);
                bubble.Scale(size);
                bubble.Move(1, start, end, x, yc, x, yc + dist * dir);
                bubble.Color(start, c.red, c.green, c.blue);
                //bubble.Parameters(start, start, "A");
            }
        }
コード例 #6
0
        public void ShootingStar(double startTime, int x, int dir)
        {
            int midPoint = rand.Next(230, 260);
            Sprite star = new Sprite(@"sb\bg\star.png");
            star.Scale(.1);
            star.Rotate(startTime, startTime + beat * 2, 0, rand.Next(60, 180));
            star.Move(1, startTime, startTime + beat / 4 * 3, x, -20, x, 500);
            star.Fade(startTime - 1, startTime, 0, 1);
            star.Parameters(startTime, startTime, "A");
            star.Color(247, 255, 168);

            Sprite line = Mathematics.DrawLines(startTime, 500, 10, dir == 1 ? Sprite.origin.CentreRight : Sprite.origin.CentreLeft);
            line.Rotate(startTime, 90 * dir);
            line.Move(1, startTime, startTime + beat / 4 * 3, x, -20, x, 500);
            Mathematics.ScaleLines(line, 1, startTime + beat, startTime + beat / 4 * 7, 1, 10);
            line.Parameters(startTime, startTime, "A");
            line.Color(247, 255, 168);
            line.Fade(startTime - 1, startTime, 0, 1);
        }