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); } }
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)); } }
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)); } }
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); } }
public SpriteSet AddSprites(SpriteSet other) { foreach (var sprite in other.Sprites) { sprites.Add(sprite); } return(this); }
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); }