Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Imports: just place them on the very top
- using StorybrewCommon.Storyboarding3d;
- using StorybrewCommon.Animations;
- //
- public void GenerateGalaxy(String filepath, double startTime, double endTime, double scale, int particleCount, double fadeOpacity, double fadeInDuration)
- {
- // Constants: don't change
- int width = 1000;
- int height = 1000;
- // Declarations: don't touch
- Scene3d scene = new Scene3d();
- scene.Root.PositionX.Add(startTime, 0);
- scene.Root.PositionY.Add(startTime, 0);
- scene.Root.PositionZ.Add(startTime, 0);
- PerspectiveCamera camera = new PerspectiveCamera();
- camera.PositionX.Add(startTime, 0);
- camera.PositionY.Add(startTime, 0);
- camera.PositionZ.Add(startTime, 100);
- for (int i = 0; i < particleCount; i++)
- {
- Sprite3d sprite = new Sprite3d
- {
- Layer = GetLayer("Foreground"),
- SpritePath = filepath,
- UseDistanceFade = false
- };
- // Sprite Positions
- sprite.PositionX.Add(startTime, Random((float)-width, (float)width));
- sprite.PositionY.Add(startTime, Random((float)-height, (float)height));
- sprite.PositionZ.Add(startTime, Random((float)-width, (float)width));
- // Scaling
- sprite.ScaleX.Add(startTime, (float)scale);
- sprite.ScaleY.Add(startTime, (float)scale);
- sprite.ScaleZ.Add(startTime, (float)scale);
- // Fade In
- sprite.Opacity.Add(startTime, 0).Add(startTime + fadeInDuration, fadeOpacity);
- // Compile Everything
- scene.Add(sprite);
- }
- // Don't touch either except the Easing
- scene.Root.PositionZ.Add(endTime, 600, EasingFunctions.ToEasingFunction(OsbEasing.InQuint));
- scene.Generate(camera, GetLayer("Foreground"), startTime, endTime, Beatmap.GetTimingPointAt((int)startTime).BeatDuration / 4);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement