Exemple #1
0
 public void UseColorsOf(SpriteSet other, double time, int offset = 0, int count = -1)
 {
     for (int i = offset; i < (count < 0 ? Sprites.Count() : count + offset); i++)
     {
         sprites[i].UseColorOf(other.Get(i), time);
     }
 }
Exemple #2
0
 public void UseRotationsOf(SpriteSet other, int offset = 0, int count = -1)
 {
     for (int i = offset; i < (count < 0 ? Sprites.Count() : count + offset); i++)
     {
         sprites[i].UseRotationOf(other.Get(1));
     }
 }
Exemple #3
0
 public void UseScaleVecsOf(SpriteSet other, int offset = 0, int count = -1)
 {
     for (int i = offset; i < (count < 0 ? Sprites.Count() : count + offset); i++)
     {
         sprites[i].UseScaleVecOf(other.Get(i));
     }
 }
Exemple #4
0
 public void UseScalesOf(SpriteSet other, double time, bool useYScale = false, int offset = 0, int count = -1)
 {
     for (int i = offset; i < (count < 0 ? Sprites.Count() : count + offset); i++)
     {
         sprites[i].UseScaleOf(other.Get(i), time, useYScale);
     }
 }
Exemple #5
0
 public SpriteSet AddSprites(SpriteSet other)
 {
     foreach (var sprite in other.Sprites)
     {
         sprites.Add(sprite);
     }
     return(this);
 }
Exemple #6
0
 public SpriteSet(SpriteSet other)
 {
     layer = other.layer;
     foreach (OsbSprite sprite in other.sprites)
     {
         sprites.Add(layer.CreateSprite(sprite.TexturePath, sprite.Origin, sprite.InitialPosition));
     }
 }
        public static SpriteSet Trail(StoryboardLayer layer, OsbSprite sprite, double startTime, double endTime, double timeBetweenSprites, double fadeInTime, double duration, double fadeOutTime, bool cutWhenSpriteDisappears)
        {
            SpriteSet trail = layer.CreateSpriteSet();

            for (double t = startTime; t < endTime; t += timeBetweenSprites)
            {
                if (sprite.OpacityAt(t) == 0)
                {
                    continue;
                }
                var    trailSprite = layer.CreateSprite(sprite.TexturePath, OsbOrigin.Centre, sprite.PositionAt(t));
                double s           = fadeInTime;
                double d           = duration;
                double e           = fadeOutTime;
                double up          = sprite.OpacityAt(t);
                double down        = 0;
                if (cutWhenSpriteDisappears)
                {
                    if (sprite.CommandsEndTime <= t + fadeInTime)
                    { // sprite doesn't get to fade in fully
                        s  = sprite.CommandsEndTime - t;
                        up = InterpolatingFunctions.Double(0, up, (sprite.CommandsEndTime - t) / (t + fadeInTime));
                    }
                    else if (sprite.CommandsEndTime <= t + fadeInTime + duration)
                    { // sprite doesn't get to fade out
                        d = sprite.CommandsEndTime - (t + fadeInTime);
                        e = 0;
                    }
                    else if (sprite.CommandsEndTime <= t + fadeInTime + duration + fadeOutTime)
                    { // sprite doesn't get to fade out fully
                        e    = sprite.CommandsEndTime - (t + fadeInTime + duration);
                        down = InterpolatingFunctions.Double(up, 0, (sprite.CommandsEndTime - (t + fadeInTime + duration)) / (fadeOutTime));
                    }
                }
                if (s == 0 && e == 0)
                {
                    trailSprite.Fade(t, t + d, 1, 1);
                }
                else
                {
                    if (s != 0 && d != 0)
                    {
                        trailSprite.Fade(t, t + s, 0, up);
                    }
                    if (e != 0)
                    {
                        trailSprite.Fade(t + d, t + d + e, up, down);
                    }
                }
                trail.AddSprite(trailSprite);
            }
            return(trail);
        }